因外键约束而无法删除现有唯一键

时间:2016-11-01 12:17:40

标签: mysql sql

我需要通过删除MySQL上的现有密钥来生成唯一键。我目前的版本是MySQL 5.7

我使用以下查询

删除了现有密钥
DROP INDEX `uk_bookid_bookname` ON Books;    

其中BookId是外键。

然后,我使用以下查询添加了新的唯一键

ALTER TABLE Books ADD UNIQUE uk_bookid_bookname (BookId, BookName);

我收到了以下错误,

  

ERROR 1553(HY000):无法删除索引&uk_bookid_bookname':外键约束中需要

我需要删除现有密钥,然后添加一个新的唯一密钥。但是,反之亦然。

1 个答案:

答案 0 :(得分:1)

您必须删除外键。 MySQL中的外键自动在表上创建索引

ALTER TABLE mytable DROP FOREIGN KEY mytable_ibfk_1 ;

然后添加另一个索引键