作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Department = models.department.Department
association_table = Table('template_department', models.base.Base.instance().get_base().metadata,
Column('template_id', Integer, ForeignKey('templates.id')),
Column('department_id', Integer, ForeignKey('departments.id')))
class Template(models.base.Base.instance().get_base()):
__tablename__ = 'templates'
id = Column(Integer, primary_key=True)
tid = Column(String(7), unique=True)
....
departments = relationship('Department', secondary=association_table)
我正在尝试删除许多 template_id 和部门之间的关系,但我无法真正提出执行此操作的查询。有什么方法可以使用 Sqlalchemy 来做到这一点吗?
最佳答案
在 MySQL 中您可以使用 row constructors和 IN-operator从 association_table 中删除与这些对匹配的行。例如,如果您有 template_id、department_id 对的列表,例如:
to_remove = [(1, 1), (2, 2), (3, 3), ...]
那么你就可以
from sqlalchemy import tuple_
stmt = association_table.delete().\
where(tuple_(association_table.c.template_id,
association_table.c.department_id).in_(to_remove))
session.execute(stmt)
...
请注意,这会绕过正常的 ORM 簿记,因此 session 中存在的实例现在可能包含过时的数据。如果您打算立即提交并在需要时重新加载数据,这不是问题。
关于python - Sqlalchemy : association table for many-to-many relationship between template_id and department. 如何删除关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44258545/
我有这样的代码,用“g++ -Wall -g -std=c++11 test.cpp ”编译,它没有编译,因为错误:')' 标记之前的预期主表达式 #include #include #inclu
Department = models.department.Department association_table = Table('template_department', models.ba
我是一名优秀的程序员,十分优秀!