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

Cách tạo chỉ mục duy nhất trong đó thứ tự cột không được tính đến (đặt?)

Bạn có thể tạo chỉ mục trên một biểu thức, trong trường hợp này là least()greatest() :

create unique index idx_obj1_obj2 on table(least(Object1, Object2), greatest(Object1, Object2));

Lưu ý:có một điều hơi kỳ lạ nếu các cột cho phép NULL các giá trị. Trong trường hợp đó, cùng một giá trị sẽ chỉ được phép sử dụng một lần, bất kể nó nằm ở cột nào. Điều này có thể được khắc phục bằng một biểu thức phức tạp hơn, nếu nó thực sự là một vấn đề.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trả về các giá trị không phải dạng số từ cột cơ sở dữ liệu PostgreSQL

  2. Làm cách nào để trả về mảng jsonb và mảng đối tượng từ dữ liệu của tôi?

  3. Làm cách nào để bạn tìm thấy kích thước đĩa của bảng Postgres / PostgreSQL và các chỉ mục của nó

  4. Nhiều SQL hơn, ít mã hơn, với PostgreSQL

  5. Khi nào thì chọn khóa và mở khóa cập nhật?