gpt4 book ai didi

python - 从 m2m 表中删除行时,sqlalchemy CompileError 未使用的列名

转载 作者:太空狗 更新时间:2023-10-29 19:27:40 25 4
gpt4 key购买 nike

有一个 m2m 表连接一个模型的实例,建立父子关系。

companies_connections = db.Table(
'companies_connections',
db.Column('parent_id', db.BigInteger(), db.ForeignKey('company.id'), primary_key=True),
db.Column('child_id', db.BigInteger(), db.ForeignKey('company.id'), primary_key=True),
)

尝试从 after_insert 事件监听器中的表中删除行我只有 Connection 对象,因为 Session 正在处理其他刷新事件。但是使用

q = companies_connections.delete(
and_(
companies_connections.c.parent_id == 10,
companies_connections.c.child_id == 23
)
)
connection.execute(q)

我明白了

CompileError: Unconsumed column names: parent_id_1, child_id_1

为什么?

最佳答案

您应该在 where 方法中指定条件:

q = companies_connections.delete().where(
and_(
companies_connections.c.parent_id == 10,
companies_connections.c.child_id == 23
)
)
connection.execute(q)

http://docs.sqlalchemy.org/en/latest/core/tutorial.html#deletes

另外,表应该用元数据定义:http://docs.sqlalchemy.org/en/latest/core/tutorial.html#define-and-create-tables

关于python - 从 m2m 表中删除行时,sqlalchemy CompileError 未使用的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30321795/

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