如何创建表并确保整行是唯一的

时间:2015-06-12 23:42:59

标签: mysql

我正在尝试创建一个表并确保整行是唯一的,以下是否有效?

ALTER TABLE `gerrits`.`gerrit_submit_table` 
ADD UNIQUE idx_row_unique(`S.No`,`gerrit_id`,`SI`,`component`,`gerrit_owner`,`release_bit`,`picked_bit`);

2 个答案:

答案 0 :(得分:1)

使所有列成为主键的一部分

但是所有列都可能是极端的,这可能会导致表格变慢。考虑一下,也许你可以以某种方式减少独特的限制。

答案 1 :(得分:0)

是的,绝对的,这将有效。使用逗号分隔的属性添加单个唯一语句可确保整行是唯一的,但您可以在列中重复这些行。

另一方面,如果你想让每一列都是唯一的,你可以使用单独的独特陈述。

如果要使用索引名称指定它,请使用:

ALTER TABLE `gerrits`.`gerrit_submit_table` 
ADD UNIQUE INDEX idx_row_unique(`S.No`,`gerrit_id`,`SI`,`component`,`gerrit_owner`,`release_bit`,`picked_bit`);

如果您不关心索引名称是什么,它会自动为您创建一个:

ALTER TABLE `gerrits`.`gerrit_submit_table` 
ADD UNIQUE(`S.No`,`gerrit_id`,`SI`,`component`,`gerrit_owner`,`release_bit`,`picked_bit`);