gpt4 book ai didi

mysql - 如何在 SQLAlchemy 中删除多对一关系中的子项?

转载 作者:行者123 更新时间:2023-11-29 15:54:19 24 4
gpt4 key购买 nike

首先,我有如下表格:

 class Parent(db.Model):
__tablename__= "parent"

id = db.Column("parent_id", db.Integer, primary_key=True)
childFirst = db.Column(db.Integer, db.ForeignKey('childFirst.childFirst_id'))
childSecond = db.Column(db.Integer, db.ForeignKey('childSecond.childSecond_id'))
childThird = db.Column(db.Integer, db.ForeignKey('childThird. childThird_id'))

child_first = db.relationship("ChildFirst")
child_second = db.relationship("ChildSecond")
child_third = db.relationship("ChildThird")

class ChildFirst(db.Model):
__tablename__ = "childFirst"

id = db.Column("childFirst_id", db.Integer, primary_key=True)
...

class ChildSecond(db.Model):
__tablename__ = "childSecond"

id = db.Column("childSecond_id", db.Integer, primary_key=True)
...

class ChildThird(db.Model):
__tablename__ = "childThird"

id = db.Column("childThird_id", db.Integer, primary_key=True)
...

因此,我按照记录建立了多对一关系 here

但是当我尝试删除其中一个 Child 时,出现错误错误:

'Cannot delete or update a parent row: a foreign key constraint fails (`<DB_NAME>`.`<PARENT_NAME>`, CONSTRAINT `<PARENT_NAME>_ibfk_3` FOREIGN KEY (`<CHILD_ID_COLUMN>`) REFERENCES `<CHILD_TABLE_NAME>` (`<CHILD_ID_COLUMN>`))')
[SQL: DELETE FROM CHILD_TABLE_NAME WHERE <CHILD_TABLE_NAME>.<CHILD_ID_COLUMN> = %(<CHILD_ID_COLUMN>_1)s]

实际上我正在尝试使用此命令删除子项 -> CHILD_CLASS.query.filter_by(id=<id_variable>).delete()

最后,我使用的是mysql数据库。

那么,出了什么问题?

谢谢并致以诚挚的问候..

最佳答案

当我删除子行时,我删除成功。

代码:

child = <CHILD_CLASS>.query.filter_by(id=<id>).first()
db.session.delete(child)
db.session.commit()

但是有什么区别呢?

关于mysql - 如何在 SQLAlchemy 中删除多对一关系中的子项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56583899/

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