You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow PostgresOperator autocommit多语句事务与回滚疑问

PostgresOperator autocommit 参数行为疑问

当使用Airflow的PostgresOperator时,若将autocommit设为True,并在sql参数中编写两条SQL语句:

SELECT * FROM FILMS;
DELETE FROM films USING producers
  WHERE producer_id = producers.id AND producers.name = 'foo'

请问:

  1. 这两条语句会被视为两个独立事务分别提交吗?
  2. 若其中一条语句执行失败,能否实现原子性回滚?

回答

  • 当autocommit=True时,每条SQL语句会作为独立事务执行并自动提交。你编写的SELECT和DELETE会分别开启两个独立的事务,各自执行完成后立即提交。
  • 无法实现原子性回滚:由于两条语句分属不同事务,若第一条语句执行成功并提交(即使是查询操作,无数据修改),第二条语句执行失败时,只会回滚当前失败的事务,已提交的第一条事务不会被回滚。如果第一条语句是写操作(如INSERT/UPDATE),其修改会被永久保留,无法随第二条语句的失败回滚。

内容的提问来源于stack exchange,提问作者moth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 11:14:56