2

我正在使用带有 Flask 的 SQLAlchemy 创建数据库表 - 每个表至少有一个外键 - 它适用于 sqlite 但不适用于 MySQL - 在 MySQL 中创建表时出现外键完整性错误(创建时未创建父表子表)。我使用“SET foreign_key_checks = 0”来解决问题,但这不适用于 sqlite。有没有办法配置 SQLAlchemy 忽略外键检查?

4

2 回答 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 回答