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

Postgresql:Ràng buộc duy nhất đối với Liên hợp 2 cột

Bạn có thể sử dụng ràng buộc loại trừ chỉ yêu cầu một chỉ mục duy nhất:

alter table transaction_links
  add constraint check_tx
  exclude using gist ( (array[send_id, receive_id]) with &&);

&& toán tử là toán tử "chồng chéo" cho mảng - có nghĩa là "có các phần tử chung, bất kể thứ tự của các phần tử trong mảng. Trong trường hợp này, ràng buộc ngăn chặn việc chèn bất kỳ hàng nào có giá trị bất kỳ của (send_id, receive_id) xuất hiện trong một số hàng khác của bảng (bất kể cột).

Tuy nhiên, bạn cần có intarray phần mở rộng cho điều đó.

Ví dụ trực tuyến: https://rextester.com/QOYS23482




  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ách sử dụng kiểu dữ liệu Blob trong Postgres

  2. Tham số kích thước khối tối ưu trong pandas.DataFrame.to_sql

  3. Trung bình động trong postgresql

  4. Các giải pháp DBaaS tốt nhất cho PostgreSQL

  5. Các chức năng của cửa sổ PostgreSQL Bỏ qua Giá trị Null