Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 烧瓶-SQLAlchemy-清除表格以及多对多链接表格_Python_Database_Flask_Sqlalchemy_Cascade - Fatal编程技术网

Python 烧瓶-SQLAlchemy-清除表格以及多对多链接表格

Python 烧瓶-SQLAlchemy-清除表格以及多对多链接表格,python,database,flask,sqlalchemy,cascade,Python,Database,Flask,Sqlalchemy,Cascade,我有两种关系:服务和停止。它们相互之间形成了一种多对多的关系。 我想清除这两个表中的所有数据,同时清空它们的多对多链接表 我尝试了以下方法 Service.query.delete() Stop.query.delete() 这清除了两个表,但是链接表中的所有数据保持不变 服务模式: class Service(Base): __tablename__ = 'service' id = Column(Integer, primary_key=True) name = C

我有两种关系:服务和停止。它们相互之间形成了一种多对多的关系。 我想清除这两个表中的所有数据,同时清空它们的多对多链接表

我尝试了以下方法

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")
有人能告诉我如何自动清除链接表,而不必循环“停止”表吗?

刚刚设置在您的加入表(
stop\u service
)的定义中:

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

感谢您的想法,我现在明白了删除必须由数据库触发,因为query.delete()是一个批量操作。然而,即使在添加了“ondelete”之后,链接表也没有被清空。我正在使用SQLite数据库。以下是我的数据库架构: