我需要通过删除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':外键约束中需要
我需要删除现有密钥,然后添加一个新的唯一密钥。但是,反之亦然。
答案 0 :(得分:1)
您必须删除外键。 MySQL中的外键自动在表上创建索引
ALTER TABLE mytable DROP FOREIGN KEY mytable_ibfk_1 ;
然后添加另一个索引键