更改MySQL中的联合唯一键

42

我在我的MYSQL表中有一个唯一键,我想要给它添加内容。

UNIQUE KEY `user_id` (`user_id`,`account_id`)

而我希望添加另一个

UNIQUE KEY `user_id` (`user_id`,`account_id`,`pet_id`)
3个回答

89
ALTER TABLE your_table 
   DROP INDEX user_id, 
   ADD UNIQUE KEY `user_id` (`user_id`,`account_id`,`pet_id`)

3
有点令人困惑的是,唯一键的名称与列名不在同一命名空间中,因此它们可以是相同的字符串,但完全具有不同的含义。(从风格上来说,我更喜欢假装它们在同一个命名空间中,以避免人为的假设错误。)如果不明显,您可以将这些语句拆分成两个 ALTER TABLE - BaseZen

2
放弃第一个密钥,然后创建新的密钥。

0
我使用这段代码来更改空的 'uniq_key' 字段。
UPDATE your_table  SET `uniq_key`= CONCAT(`user_id`, account_id, pet_id) WHERE  `uniq_key`= ''

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接