Tho*_*wne 165 sql database postgresql indexing unique-constraint
我有下表:
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
Run Code Online (Sandbox Code Playgroud)
对于任何给定tickername/ tickerbbname对,我不希望任何列都有多个列.我已经创建了表并且其中包含大量数据(我已经确保它符合唯一标准).然而,随着它变得越来越大,错误的空间越来越大.
有没有办法UNIQUE在这一点上添加约束?
hha*_*amu 332
psql内联帮助:
\h ALTER TABLE
Run Code Online (Sandbox Code Playgroud)
还有postgres文档中的文档(一个很好的资源,也很容易阅读).
ALTER TABLE tablename ADD CONSTRAINT constraintname UNIQUE (columns);
Run Code Online (Sandbox Code Playgroud)
Zec*_*eck 32
是的你可以.但是如果您的桌子上有非唯一条目,它将会失败.以下是如何在表上添加唯一约束.如果你正在使用PostgreSQL 9.x,你可以按照以下说明操作.
CREATE UNIQUE INDEX constraint_name ON table_name (columns);
Run Code Online (Sandbox Code Playgroud)
Luc*_*pos 11
如果您的表已经存在基于以下条件的约束:name 和 lastname,并且您想再添加一个唯一约束,则必须通过以下方式删除整个约束:
ALTER TABLE your_table DROP CONSTRAINT constraint_name;
Run Code Online (Sandbox Code Playgroud)
确保您要添加的新约束在该表的所有数据中是唯一的/不为空(如果它是 Microsoft Sql,则它只能包含一个空值),然后您可以重新创建它。
ALTER TABLE table_name
ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... column_n);
Run Code Online (Sandbox Code Playgroud)
是的,您可以在事实之后添加UNIQUE约束。但是,如果表中有非唯一条目,则在更正它们之前,Postgres会抱怨它。
| 归档时间: |
|
| 查看次数: |
164060 次 |
| 最近记录: |