如何删除mysql中引用多列的外键

zzoitvuj  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(301)

我有一个外键,它引用子表中的两列。我想删除外键,但mysql只是挂起,什么也没发生:
下面是show create table\u name的输出: KEY FK_animal_index (animal_type,food_index), CONSTRAINT FK_animal_index FOREIGN KEY (animal_type, food_index) REFERENCES animal_schedules (animal_type, food_index) ENGINE=InnoDB 我已尝试使用以下方法删除此外键:

`ALTER TABLE table_name DROP FOREIGN KEY FK_animal_index;`

`ALTER TABLE table_name DROP FOREIGN KEY animal_type;`
``` `ALTER TABLE section_configuration DROP FOREIGN KEY FK_animal_index, DROP KEY (animal_type, food_index);` 和 `ALTER TABLE section_configuration DROP FOREIGN KEY` 动物指数 `, ADD CONSTRAINT FK_animal_type FOREIGN KEY (animal_type) REFERENCES` 动物健康表 `(` 动物型 `) ON DELETE SET NULL;` 其他人提到,不设置ondelete可以防止更改键值(如果ondelete没有设置为任何值,mysql将拒绝更改)
但没有结果,mysql只是挂起了,30分钟后还是什么都没有。数据库目前非常小,因此删除fk应该很快。
vm0i2vca

vm0i2vca1#

这个问题的答案根本不是关于主键。为了对表进行修改,我不得不阻止我的程序访问表。在mysql数据库中,您可以随时添加表和列,但是如果您想更改列或删除列,任何程序都不能使用它,否则它将无限期挂起。

相关问题