nim*_*wfc 1 sql postgresql create-table unique-constraint
我有一个非常简单的表:
id | name | alternate
--------+--------+------------
1 | Joe | Joseph
--------+--------+------------
2 | Pete | Peter
--------+--------+------------
Run Code Online (Sandbox Code Playgroud)
等等。
我想在名称和备用列上添加约束,但与顺序无关。例如,我不希望能够插入(3, 'Peter', 'Pete'),因为它本质上与 id 2 相同,只是列颠倒了。
有没有办法做到这一点?
Create a unique index:
CREATE UNIQUE INDEX ON atable
(LEAST(name, alternate), GREATEST(name, alternate));
Run Code Online (Sandbox Code Playgroud)