PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Ràng buộc loại trừ `EXCLUDE USING gist (c WITH &&) 'nghĩa là gì?

Trong khi CHECK ràng buộc đánh giá một biểu thức dựa trên một hàng của bảng, một EXCLUDE ràng buộc đánh giá so sánh hai hàng trong bảng. Hãy nghĩ về nó giống như một UNIQUE tổng quát ràng buộc:thay vì "không có hai hàng nào có thể bằng nhau", bạn có thể nói những điều như "không có hai hàng nào trùng nhau" hoặc thậm chí "không có hai hàng nào có thể khác nhau ".

Để đạt được điều này mà không cần kiểm tra mọi kết hợp giá trị có thể có, nó cần một cấu trúc chỉ mục thích hợp cho phép nó tìm ra các vi phạm có thể xảy ra khi bạn chèn hoặc cập nhật một hàng. Đây là những gì gist một phần của khai báo đề cập đến: một loại chỉ mục cụ thể có thể được sử dụng để tăng tốc các hoạt động khác với bình đẳng.

Phần còn lại của khai báo là chính ràng buộc:c là cột đang được kiểm tra và && là toán tử không được trả về true cho bất kỳ cặp hàng nào. Trong trường hợp này, && là toán tử "chồng chéo" như được liệt kê trên trang hướng dẫn toán tử hình học .

Vì vậy, tổng hợp lại, ràng buộc EXCLUDE USING gist (c WITH &&) dịch thành "không có hai giá trị của c phải chồng lên nhau (chính xác hơn là A.c && B.c phải trả về false hoặc null cho tất cả các hàng riêng biệt AB ), và vui lòng sử dụng gist chỉ mục để giám sát ràng buộc này ".




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có lý do gì không sử dụng tìm kiếm toàn văn tích hợp sẵn của PostgreSQL trên Heroku?

  2. Tìm và thay thế biểu thức chính quy trong Postgres

  3. Làm cách nào để truy vấn SQL cho các từ có dấu câu trong Postgresql?

  4. Làm sắc nét dữ liệu của bạn với PostgreSQL 11

  5. Kiến thức cơ bản về kích hoạt PostgreSQL và hàm được lưu trữ