繁体   English   中英

MySQL 的“SET foreign_key_checks = 0”的 SQLAlchemy 配置

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM