首页 > 解决方案 > Jupyter notebook:使用 %sql 魔法关键字时禁用自动提交

问题描述

我在 Jupyter notebook 中使用%sqland关键字来删除 sql 记录。%%sql

我使用以下连接到数据库:

%load_ext sql
%sql oracle+cx_oracle://user/pwd@tnsname

但是,当我执行删除语句时,似乎之后会自动完成提交:

%%sql
delete from my_table

在此 DML 操作之后,当我打开另一个会话并执行 aselect count(*) from my_table时,结果为零。

如何使用%sql魔法关键字禁用自动提交?

附录,当我使用该%config SqlMagic.autocommit=False选项时,我有:

用户警告:配置选项autocommit无法识别SqlMagic。你的意思是autolimit

谢谢

标签: sqloraclejupyter-notebookipython

解决方案


我认为您需要在运行连接之前更改配置:

%config SqlMagic.autocommit=False

For Databases 默认情况下始终为 true,实际上它始终为 true。例如,如果您需要连接到 IMPALA,您需要先禁用它。

%config SqlMagic.autocommit=False
%sql impala://hserverhost:port/default?kerberos_service_name=hive&auth_mechanism=GSSAPI

推荐阅读