我有一个表格,列login
,lineno
,line
。
每个login
可以包含3 lineno
和3 lines
,如果lineno
相同,则每个login
必须是唯一的。
我试过了:
create unique index unique_Lineno on rs_line (Lineno) where login=login;
它不起作用。有人可以帮我一下吗? 我读过http://www.postgresql.org/docs/8.0/static/indexes-unique.html,但没有样本。
答案 0 :(得分:1)
partial index:login=login
的条件不符合您的预期。 始终评估为TRUE
,login is NOT NULL
,这对您的案例没有任何帮助。
您需要multicolumn index代替:
CREATE UNIQUE INDEX rs_line_uni_idx ON rs_line (login, lineno);
假设您的列为NOT NULL
。另外,还要考虑:
How to add a conditional unique index on PostgreSQL