我正在尝试创建一个表并确保整行是唯一的,以下是否有效?
ALTER TABLE `gerrits`.`gerrit_submit_table`
ADD UNIQUE idx_row_unique(`S.No`,`gerrit_id`,`SI`,`component`,`gerrit_owner`,`release_bit`,`picked_bit`);
答案 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`);