一个表中的唯一索引

时间:2013-10-08 10:29:09

标签: sql postgresql indexing unique-index

我有一个表格,列loginlinenoline
每个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,但没有样本。

1 个答案:

答案 0 :(得分:1)

partial indexlogin=login的条件不符合您的预期。 始终评估为TRUElogin 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