在创buildPostgreSQL表后,我可以添加一个UNIQUE约束吗?

我有下面的表格:

tickername | tickerbbname | tickertype ------------+---------------+------------ USDZAR | USDZAR Curncy | C EURCZK | EURCZK Curncy | C EURPLN | EURPLN Curncy | C USDBRL | USDBRL Curncy | C USDTRY | USDTRY Curncy | C EURHUF | EURHUF Curncy | C USDRUB | USDRUB Curncy | C 

其中我不希望任何tickername或tickerbbname列条目是重复的。 我已经创build了表,并有很多数据(我已经检查是唯一的)。 因为它变得越来越大,出现错误的余地。任何添加UNIQUE约束的方法事后?

谢谢,

psql的内联帮助:

 \h ALTER TABLE 

还logging在postgres文档 (一个很好的资源,加上容易阅读,也)。

 ALTER TABLE tablename ADD CONSTRAINT constraintname UNIQUE (columns); 

是的你可以。 但是如果你的桌子上有不唯一的条目,它将会失败。 这里是如何在你的表上添加唯一约束。 如果您使用的是PostgreSQL 9.x,则可以按照以下说明操作。

 CREATE UNIQUE INDEX constraint_name ON table_name (columns); 

是的,您可以在事实之后添加一个UNIQUE约束。 但是,如果表格中包含非唯一条目,则Postgres会对其进行投诉,直到您更正为止。

如果你有一个表已经有一个基于现有的约束可以说:名字和姓氏,你想添加一个更多的唯一约束,你必须通过删除整个约束:

 ALTER TABLE your_table DROP CONSTRAINT constraint_name; 

确保你想要添加的新约束在该表的所有数据上是唯一的/不为空(如果它的Microsoft Sql,它只能包含一个空值),然后你可以重新创build它。

 ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... column_n);