【发布时间】:2021-03-15 13:46:07
【问题描述】:
这是我的功能:
up: queryInterface => {
return queryInterface.sequelize.query('SET FOREIGN_KEY_CHECKS = 0')
.then(() => queryInterface.dropTable('my_table'));
},
此查询在表中有效:
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS `my_table`;
错误是
无法删除或更新父行:外键约束失败
【问题讨论】:
-
我对 sequelize 毫无头绪,但作为 DBA,我可以告诉你,
set foreign_key_checks=0语句具有会话范围。如果可能,只需在同一个会话中执行这两个语句。 -
@fancyPants 看来您不能在同一个会话中执行两个语句。我从其他表中删除了引用并且它起作用了。
-
是否有其他人/其他人同时在数据库中工作?如果是,那么删除引用不能成为解决方案。这也是我对 Zendem 的回答投反对票的原因。
-
我没有注意到有两个表引用了我的。我从它们中删除了列,它起作用了。 SET FOREIGN_KEY_CHECKS = 0 是不安全的。
-
您宁愿完全没有参照完整性?你删除列?好吧。祝你有美好的一天。
标签: mysql sql sequelize.js sequelize-cli