云服务器内容精选
-
语法格式 开启匿名块 1 2 3 4 5 [DECLARE [declare_statements]] BEGIN execution_statements END; / 开启事务 1 2 3 4 5 6 7 BEGIN [ WORK | TRANSACTION ] [ { ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ } | { READ WRITE | READ ONLY } } [, ...] ];
-
语法格式 开启匿名块 1 2 3 4 5 [DECLARE [declare_statements]] BEGIN execution_statements END; / 开启事务 1 2 3 4 5 6 7 BEGIN [ WORK | TRANSACTION ] [ { ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ } | { READ WRITE | READ ONLY } } [, ...] ];
-
语法格式 开启匿名块 1 2 3 4 5 [DECLARE [declare_statements]] BEGIN execution_statements END; / 开启事务 1 2 3 4 5 6 7 BEGIN [ WORK | TRANSACTION ] [ { ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ } | { READ WRITE | READ ONLY } } [, ...] ];
-
示例 START TRANSACTION; START TRANSACTION ISOLATION LEVEL REPEATABLE READ; START TRANSACTION READ WRITE; START TRANSACTION ISOLATION LEVEL READ COMMITTED, READ ONLY; START TRANSACTION READ WRITE, ISOLATION LEVEL SERIALIZABLE; 不支持嵌套事务,也就是开启事务后,在commit之前不能再开启其它事务。
-
语法格式 开启匿名块 1 2 3 4 5 [DECLARE [declare_statements]] BEGIN execution_statements END; / 开启事务 1 2 3 4 5 6 7 BEGIN [ WORK | TRANSACTION ] [ { ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ } | { READ WRITE | READ ONLY } } [, ...] ];
-
示例 建立一个保存点,然后撤销建立保存点后执行的所有命令的效果: 1 2 3 4 5 6 7 START TRANSACTION; INSERT INTO table1 VALUES (1); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (2); ROLLBACK TO SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (3); COMMIT; 查询表的内容,会同时看到1和3,不能看到2,因为2被回滚。 建立并随后销毁一个保存点: 1 2 3 4 5 6 START TRANSACTION; INSERT INTO table1 VALUES (3); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (4); RELEASE SAVEPOINT my_savepoint; COMMIT; 查询表的内容,会同时看到3和4。
-
注意事项 使用ROLLBACK TO SAVEPOINT回滚到一个保存点。使用RELEASE SAVEPOINT删除一个保存点,但是保留该保存点建立后执行的命令的效果。 保存点只能在一个事务块里面建立。在一个事务里面可以定义多个保存点。 函数、匿名块和存储过程中不支持使用SAVEPOINT语法。 由于节点故障或者通信故障引起的分布式节点线程或进程退出导致的报错,以及由于COPY FROM操作中源数据与目标表的表结构不一致导致的报错,均不能正常回滚到保存点之前,而是整个事务回滚。 SQL标准要求,使用savepoint建立一个同名保存点时,需要自动删除前面那个同名保存点。在 GaussDB (DWS)数据库里,将保留旧的保存点,但是在回滚或者释放的时候,只使用最近的那个。释放了新的保存点将导致旧的再次成为ROLLBACK TO SAVEPOINT和RELEASE SAVEPOINT可以访问的保存点。除此之外,SAVEPOINT是完全符合SQL标准的。
-
示例 START TRANSACTION;START TRANSACTION ISOLATION LEVEL REPEATABLE READ;START TRANSACTION READ WRITE;START TRANSACTION ISOLATION LEVEL READ COMMITTED, READ ONLY;START TRANSACTION READ WRITE, ISOLATION LEVEL SERIALIZABLE; 不支持嵌套事务,也就是开启事务后,在commit之前不能再开启其它事务。
-
注意事项 不能回滚到一个未定义的保存点,语法上会报错。 在保存点方面,游标有一些非事务性的行为。任何在保存点里打开的游标都会在回滚掉这个保存点之后关闭。如果一个前面打开了的游标在保存点里面,并且游标被一个FETCH命令影响,而这个保存点稍后回滚了,那么这个游标的位置仍然在FETCH让它指向的位置(也就是FETCH不会被回滚)。关闭一个游标的行为也不会被回滚给撤销掉。如果一个游标的操作导致事务回滚,那么这个游标就会置于不可执行状态,所以,尽管一个事务可以用ROLLBACK TO SAVEPOINT重新恢复,但是游标不能再使用了。 使用ROLLBACK TO SAVEPOINT回滚到一个保存点。使用RELEASE SAVEPOINT删除一个保存点,但是保留该保存点建立后执行的命令的效果。
-
示例 撤销 my_savepoint 建立之后执行的命令的影响: 1 ROLLBACK TO SAVEPOINT my_savepoint; 游标位置不受保存点回滚的影响: 1 2 3 4 5 6 7 8 910111213 BEGIN;DECLARE foo CURSOR FOR SELECT 1 UNION SELECT 2;SAVEPOINT foo;FETCH 1 FROM foo; ?column? ---------- 1ROLLBACK TO SAVEPOINT foo;FETCH 1 FROM foo; ?column? ---------- 2COMMIT;
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格