我有一张表格如下:
.-----------------------------.
| mytable |
-------------------------------
| id | primary key |
| field | varchar |
| name | varchar |
-------------------------------
id
和field
将是唯一的。但我希望name
对每个field
也是唯一的。 e.g。
id | field | name
------------------------------------------------------
1 | f1 | n1
2 | f1 | n2
3 | f1 | n1 < Should be voilated
4 | f2 | n1 < Should be fine
答案 0 :(得分:1)
只需添加唯一索引或约束:
create unique index idx_mytable_name_field on mytable(name, field)
注意:如果列中包含NULL
值并且您希望约束也适用于它们,则此解决方案将不起作用。默认情况下,Postgres会忽略NULL
个值。