如何更改MySql中的列标志?

时间:2015-07-16 00:17:42

标签: mysql

假设我有一个没有唯一约束的列,我该如何添加该约束?

如果可以,我如何确保列中已有的元素符合该约束?

3 个答案:

答案 0 :(得分:0)

试试这个:

CREATE TABLE table_copy AS SELECT * FROM table; -- creating table copy
TRUNCATE TABLE table; -- truncating table to successfully apply unique index
ALTER TABLE table ADD CONSTRAINT table_fieldname_unique_index UNIQUE (fieldname);  -- adding unique index, replace **fieldname** with real field name
INSERT IGNORE INTO table VALUES (SELECT * FROM table_copy); -- copy data from table copy to original table

答案 1 :(得分:0)

使用

添加constaint

ALTER TABLE <your table> ADD CONSTRAINT <constraint name> UNIQUE (<your column>)

为了确保您的表符合唯一约束,您可以执行

SELECT count(t.<your column>) FROM <your table> t GROUP BY t.<your column> HAVING COUNT(t.<your column>) > 1

此查询将为粘贴表返回0,否则返回1

答案 2 :(得分:0)

如果您尝试添加唯一约束并且现有数据不是唯一的,那么您将收到错误并且添加约束将失败。