如何删除mySQL中引用多列的外键
发布时间:2022-10-27 12:46:21 所属栏目:MySql教程 来源:
导读: 如何删除mySQL中引用多列的外键
mysql
如何删除mySQL中引用多列的外键,mysql,foreign-keys,Mysql,Foreign Keys,我有一个外键,它引用子表中的两列。我想删除外键,但mySQL只是挂起mysql删除表,
mysql
如何删除mySQL中引用多列的外键,mysql,foreign-keys,Mysql,Foreign Keys,我有一个外键,它引用子表中的两列。我想删除外键,但mySQL只是挂起mysql删除表,
|
如何删除mySQL中引用多列的外键 mysql 如何删除mySQL中引用多列的外键,mysql,foreign-keys,Mysql,Foreign Keys,我有一个外键,它引用子表中的两列。我想删除外键,但mySQL只是挂起mysql删除表,什么也没发生:以下是“显示创建表\u名称”的输出:关键FK_动物指数(动物类型、食物指数),约束FK_动物索引外键(动物类型、食物索引)参考动物种类表(动物种类、食物指数)引擎=InnoDB我已尝试使用以下方法删除此外键:`ALTER TABLE table_name DROP FOREIGN KEY FK_animal_index;``ALTER TABLE table_name DROP FOREIGN 我有一个外键,它引用子表中的两列。我想删除外键,但mySQL只是挂起,什么也没发生: 以下是“显示创建表\u名称”的输出: 关键FK_动物指数(动物类型、食物指数), 约束FK_动物索引外键(动物类型、食物索引) 参考动物种类表(动物种类、食物指数) 引擎=InnoDB 我已尝试使用以下方法删除此外键: `ALTER TABLE table_name DROP FOREIGN KEY FK_animal_index;` `ALTER TABLE table_name DROP FOREIGN KEY animal_type;` ALTER TABLE section\u configuration DROP外键FK\u animal\u index, 下拉键(动物类型、食物索引) 及 ALTER TABLE section\u configuration DROP FOREIGN KEY FK\u animal\u index ,添加约束FK\u animal\u type FOREIGN KEY(animal\u type)REFERENCES animal\u schedules ( animal\u type )ON DELETE SET NULL 其他人提到,未设置ON DELETE会阻止您更改键值(如果ON DELETE未设置为任何值,mySQL将拒绝更改) 但是没有用,mySQL只是挂起,30分钟后仍然什么都没有。数据库目前非常小,因此删除FK应该很快。 这个问题的答案根本不是关于主键。 我不得不停止我的程序访问该表,以便对其进行修改。 在mySQL db中,您可以随时添加表和列,但如果要更改列或删除列,任何程序都不能使用它,否则它将无限期挂起。 我猜它正在等待访问表。如果有任何未完成的事务在其他会话中运行,ALTER TABLE必须等待它们完成,然后才能开始对该表执行任何操作。这称为元数据锁。任何查询了该表并未提交其事务的会话都可以无限期地阻止ALTER表。是的,看起来您是正确的。我可以插入、更新和选择记录,但在停止任何程序访问数据库之前,我无法更改表。我停止了我的程序并使用: ALTER TABLE section_configuration DROP FOREIGN KEY FK_animal_index,ADD CONSTRAINT FK_animal_type外键(animal_type)在DELETE SET NULL上引用animal_schedules(animal_type)成功了。非常感谢Karwin先生 (编辑:海洋资讯信息网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐

