python - 适用于 Python 的 Snowflake 连接器中的事务和回滚
问题描述
我正在使用适用于 Python 的 Snowflake 连接器,如下所示:
ctx = snowflake.connector.connect(user=username, password=password, account=account, warehouse=warehouse)
cs = ctx.cursor()
try:
cs.execute(u"begin")
cs.execute("TRUNCATE table1")
cs.execute("TRUNCATE table2")
cs.execute("TRUNCATE table3")
ctx.commit()
except snowflake.connector.errors.ProgrammingError as e:
ctx.rollback()
print("ERROR" + e.msg)
finally:
cs.close()
ctx.close()
本质上,如果任何 SQL (TRUNCATES) 有任何问题,我想回滚。但是这段代码似乎没有回滚。
关于可能导致这种情况的任何想法?
解决方案
从文档中,您必须将 autocommit 设置为 False 才能使 Rollback 工作,但是,即使设置了它,我也无法让它工作。请张贴你的发现。
ctx = snowflake.connector.connect(autocommit=False,user=username, password=password, account=account, warehouse=warehouse)
推荐阅读
- python - 如何在while循环中更新向量
- javascript - Select2:如何选择一个选项的“值”?
- java - 开发人员 Android 文档中未指定的工作标志如何?
- capacitor - 无法将电容器更新到版本 2.1.0
- c++ - 如何使用 SFINAE 有条件地在方法调用中定义变量?
- linux - 如何将编码更改为 UTF-8 以进行 linux 重定向..?
- dictionary - 如何在 Groovy 中找到密钥
- elasticsearch - Elasticseach 从日期和文档计数中获得不同的年份
- javascript - NativeScript 组件不显示
- tsql - 获取 TSQL 中分组记录的 ID