[英]SQLAlchemy configration for MySQL's “SET foreign_key_checks = 0”
我正在使用 SQLAlchemy 和 Flask 创建数据库表 - 每个表至少有一个外键 - 它适用于 sqlite 但不适用于 MySQL - 在 MySQL 中创建表时出现外键完整性错误(创建表时未创建父表子表)。 我使用“SET foreign_key_checks = 0”来解决问题,但这不适用于 sqlite。 有没有办法配置 SQLAlchemy 以忽略外键检查?
如果您是mysql
用户,则可以连接到 mysql 并使用SET GLOBAL FOREIGN_KEY_CHECKS = 0;
删除你想要的数据库表,然后再次SET GLOBAL FOREIGN_KEY_CHECKS = 1;
. 此值验证数据库表中的外部关系。
首先,为什么要忽略外键约束? 当您定义外键时,您可以传递一个带有外部表和列名称的字符串,即使尚未创建外部表,这些也会被正确解析。
但无论如何,如果你想拥有不被强制执行的外键,就不要将你的外键列定义为外键,将它们定义为简单的列并自己管理外键依赖。 在我看来,这不是一个好主意,但可以做到。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.