sql >> Databáze >  >> RDS >> PostgreSQL

Jak vytvořit jedinečný index, kde se nebere v úvahu pořadí sloupců (nastaveno?)

Můžete vytvořit index pro výraz, v tomto případě least() a greatest() :

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

Poznámka:Pokud sloupce povolují NULL, je zde jedna drobná zvláštnost hodnoty. V takovém případě by stejná hodnota byla povolena pouze jednou, bez ohledu na sloupec, ve kterém se nachází. To lze opravit složitějším výrazem, pokud se skutečně jedná o problém.




  1. MySQL IFNULL() Vysvětleno

  2. Jak zjistit dotaz, který drží zámek v Postgres?

  3. Převod výsledků Select do skriptu Insert - SQL Server

  4. Obnovení zálohy databáze SQL Server na nižší verzi