我有表结构:
table {
`id` int(11) NOT NULL AUTO_INCREMENT,
`content_type`,
`protocol`,
`content_id`,
`hash`
}
我正在添加唯一键
alter table delivery add unique (content_type, protocol, content_id, hash);
如果运行查询X次,我怎样才能避免重复键;
示例:
UNIQUE KEY `content_type_2` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_3` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_4` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_5` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_6` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_7` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_8` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_9` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_10` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_11` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_12` (`content_type`,`protocol`,`content_id`,`hash`),
答案 0 :(得分:0)
使用命名约束,如果您尝试两次创建相同的约束,该约束应该失败:
ALTER TABLE delivery ADD CONSTRAINT my_constraint_name UNIQUE (content_type, protocol, content_id, hash);
答案 1 :(得分:0)
我相信您必须检查表格是否已经包含您现在要添加的密钥(除非您使用的是命名密钥),(例如)SHOW INDEX
:
SHOW INDEXES FROM table1;