KingbaseES V8R6 ksql 关闭自动提交
背景
用过oracle或mysql的人都知道,做一个dml语句,如果发现做错了,还可以rollback,但在Kingbase ksql 中,如果执行一个dml,没有先运行begin; 的话,一执行完就马上提交了,不能回滚,(因为默认自动提交是开启的)这样容易导致误操作的发生,有没有什么办法避免这个风险呢?答案是关闭自动提交。
在KingabseESV8R6中 autocommit功能默认是开启的。
test=# \echo :AUTOCOMMIT;
on;
在被设置为on
(默认)时,每一个 SQL 命令在成功完成时会被自动提交。在这种模式中要推迟提交,必须输入一个BEGIN
或者START TRANSACTION
SQL 命令。当被设置为off
或者被重置时,在显式发出COMMIT
或者END
之前,SQL 命令不会被提交。
test=# \set AUTOCOMMIT off;
test=# \echo :AUTOCOMMIT;
off;
这个简单的命令禁用会话的自动提交。关闭自动提交后,dml可以回滚。当退出会话就会失效。注意ddl的回滚功能无关自动提交功能。
全局关闭自动提交
用root用户找到ksqlrc.sample文件
将sample 拷贝到 数据库配置目录etc下并改名为ksqlrc
在ksqlrc文件中加入\set AUTOCOMMIT off 注意AUTOCOMMIT要大写
并重启数据库服务后。查看已经关闭了自动提交功能
KINGBASE研究院
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!