我正在使用带有 Flask 的 SQLAlchemy 创建数据库表 - 每个表至少有一个外键 - 它适用于 sqlite 但不适用于 MySQL - 在 MySQL 中创建表时出现外键完整性错误(创建时未创建父表子表)。我使用“SET foreign_key_checks = 0”来解决问题,但这不适用于 sqlite。有没有办法配置 SQLAlchemy 忽略外键检查?
问问题
2288 次
2 回答
2
如果你是用户mysql
,你可以连接到 mysql 并使用SET GLOBAL FOREIGN_KEY_CHECKS = 0;
删除你想要的 db 表,然后再次SET GLOBAL FOREIGN_KEY_CHECKS = 1;
。此值验证 db 表中的外部关系。
于 2017-11-09T15:58:47.950 回答
0
首先,为什么要忽略外键约束?当您定义外键时,您可以传递带有外表和列名的字符串,即使尚未创建外表,这些也会被正确解析。
但无论如何,如果您想拥有不强制执行的外键,只需不要将外键列定义为外键,将它们定义为简单列并自己管理外键依赖项。在我看来,这不是一个好主意,但可以做到。
于 2016-04-16T17:12:45.467 回答