Python SQLAlchemy删除所有依赖项并添加所有依赖项
我有一个名为Python SQLAlchemy删除所有依赖项并添加所有依赖项,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,我有一个名为Configuration的表配置有多个字段,这些字段表示为列表,每个表使用外键到配置 因此,其中一个表的示例是Users,外键为Configuration,另一列为username 我收到了一份表格,用于更新每个配置,因为理论上应该使用相关信息更新每个依赖表 例如,我现在可能有 Configuration with Users: [Bob, John] 表格提供了 Configuration with Users: [Jan] 现在,我只想要一行用于配置,一行用于用户和Jan
Configuration
的表<代码>配置有多个字段,这些字段表示为列表,每个表使用外键
到配置
因此,其中一个表的示例是Users
,外键为Configuration
,另一列为username
我收到了一份表格,用于更新每个配置
,因为理论上应该使用相关信息更新每个依赖表
例如,我现在可能有
Configuration
with Users: [Bob, John]
表格提供了
Configuration
with Users: [Jan]
现在,我只想要一行用于配置
,一行用于用户
和Jan
相反,Bob
和John
被删除。如何在一个事务中执行此操作,以便查询数据库的用户看到新配置或旧配置
我目前正在做类似的事情:
clear_dependents(id)
db.session.commit()
add_dependents(id, fields)
db.session.commit()
然而,由于我在清除依赖表后提交,因此理论上,查询应用程序可能会看到一个空配置。如果更新新表失败,如何避免这种情况并回滚到旧配置
我尝试了db.session.flush()
,但是如果表单中的新配置包含旧的配置值(重复错误),则此操作无效。失败的例子是使用:
与用户:[Jan,Bob]因为尚未删除从属表上的Bob