用于MySQL的SQLAlchemy configration" SET foreign_key_checks = 0"

时间:2016-04-15 18:22:26

标签: mysql sqlite sqlalchemy flask-migrate

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

2 个答案:

答案 0 :(得分:0)

首先,为什么要忽略外键约束?定义外键时,可以传递带有外部表和列名的字符串,即使尚未创建外部表,也可以正确解析这些字符串。

但是在任何情况下,如果您想要使用未强制执行的外键,只需将外键列定义为外键,将它们定义为简单列并自行管理外键依赖项。在我看来,这不是一个好主意,但可以做到。

答案 1 :(得分:0)

如果您使用mysql,可以连接mysql并使用SET Global FOREIGN_KEY_CHECKS = 0; 并删除要删除的数据库表。再次SET全局FOREIGN_KEY_CHECKS = 1; ,此值用于检查外部关系数据库表