gpt4 book ai didi

python - Flask - SQLAlchemy - 清除表以及多对多链接表

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:58 43 4
gpt4 key购买 nike

我有两个关系:服务和停止。它们彼此形成多对多的关系。我想清除两个表中的所有数据,同时清空它们的多对多链接表。

我尝试了以下方法。

Service.query.delete()
Stop.query.delete()

这清除了两个表,但是链接表中的所有数据保持不变。

服务模式:

class Service(Base):
__tablename__ = 'service'
id = Column(Integer, primary_key=True)
name = Column(String(250), nullable=False)
service_type = Column(String(250), nullable=False)
description = Column(String(250), nullable=False)

停止模型:

class Stop(Base):
__tablename__ = 'stop'
id = Column(Integer, primary_key=True)
name = Column(String(250), nullable=False)
latitude = Column(Float(), nullable=False)
longitude = Column(Float(), nullable=False)
services = relationship("Service",
secondary=stop_service,
backref="stop")

有人可以告诉我如何自动清除链接表,而不必循环遍历“停止”表吗?

最佳答案

只需设置ondelete to CASCADE在您的连接表 (stop_service) 的定义中:

stop_service = Table("stop_service", meta,
Column("service_id", ForeignKey('Service.id', ondelete="CASCADE")),
Column("stop_id", ForeignKey('Stop.id', ondelete="CASCADE")))

关于python - Flask - SQLAlchemy - 清除表以及多对多链接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28918821/

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