gpt4 book ai didi

sql - SQLAlchemy允许将null作为ForeignKey

转载 作者:行者123 更新时间:2023-12-03 22:36:35 24 4
gpt4 key购买 nike

假设我有两个模型

class EntityModel(DB.Model):
id = DB.Column(DB.Unicode(37), primary_key=True)

class DocumentModel(DB.Model):
id = DB.Column(DB.Unicode(37), primary_key=True)
entity_id = DB.Column(DB.Unicode(37), DB.ForeignKey('entity.id', ondelete='cascade'), nullable=True)
entity = DB.relationship('EntityModel')


我可以使用entity_id NULL创建新文档。但是,一旦我为该文档设置了有效的entity_id,就无法再将其无效。我得到错误:

Cannot add or update a child row: a foreign key constraint fails

如果有有效的entity_id,如何在某些文档中将entity_id设置为null?

最佳答案

您的ORM定义看起来不错,DocumentModel.entity_id确实可以为空。在这种情况下,我要做的就是检查MySQL中的实际表定义,并确保它与您的ORM定义相对应,例如

-- make sure DocumentModel.entity_id is nullable :
SHOW CREATE TABLE DocumentModel\G
UPDATE DocumentModel.entity_id SET entity_id = NULL WHERE entity_id = XXX;

关于sql - SQLAlchemy允许将null作为ForeignKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29779865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com