mysql – 由于外键约束而无法删除现有的唯一键

我需要通过删除
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): Cannot drop index ‘uk_bookid_bookname’: needed in a foreign key constraint

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

最佳答案 你必须删除外键. MySQL中的外键自动在表上创建索引

ALTER TABLE mytable DROP FOREIGN KEY mytable_ibfk_1 ;

然后添加另一个索引键

点赞