1.自动提交
自动提交模式在 DISQL 中,用户也可以通过执行如下语句来设置当前会话为自动提交模式:
SET AUTOCOMMIT ON;
2.手动提交模式
可以执行 COMMIT 或者 ROLLBACK 来提交或者回滚事务
3.隐式提交
- CREATE;
- ALTER;
- TRUNCATE;
- DROP;
- GRANT;
- REVOKE;
- 审计设置语句
隐式提交前面的语句
4.自动回滚
Disql添加数据后没有commit直接disconn端开连接数据消失
5.回滚到保存点
回滚到插入数据之前
6.语句级回滚
当 INI 参数 ROLL_ON_ERR 为缺省值 0 时,在 SQL 语句执行过程中发生的错误,将会
导致语句级回滚,例如违反唯一性、死锁(访问相同数据而产生的竞争)、运算溢出等。在
SQL 语句解析的过程中发生错误(例如语法错误),由于未对数据产生任何影响,因此不会
产生语句级回滚。
例如设置主键后主键值重复
7.锁模式
锁模式指定并发用户如何访问锁定资源。DM 数据库使用四种不同的锁模式:共享锁、
排他锁、意向共享锁和意向排他锁。
- 共享锁
共享锁(Share Lock,简称 S 锁)用于读操作,防止其他事务修改正在访问的对象。
这种封锁模式允许多个事务同时并发读取相同的资源,但是不允许任何事务修改这个资源。 - 排他锁
排他锁(Exclusive Lock,简称 X 锁)用于写操作,以独占的方式访问对象,不允
许任何其他事务访问被封锁对象;防止多个事务同时修改相同的数据,避免引发数据错误
防止访问一个正在被修改的对象,避免引发数据不一致。一般在修改对象定义时使用。 - 意向锁
意向锁(Intent Lock)用于读取或修改被访问对象数据时使用,多个事务可以同时
对相同对象上意向锁,DM 支持两种意向锁:
- 意向共享锁(Intent Share Lock,简称 IS 锁):一般在只读访问对象时使用;
- 意向排他锁(Intent Exclusive Lock,简称 IX 锁):一般在修改对象数据时
使用。
7.1.使用共享锁
事务一
事务二
可以查询但无法操作数据
7.2.使用排他锁
排他锁,另一个事务无法执行,无法查询数据
7.3.使用意向共享锁
事务一
事务二
增加列失败,添加数据成功
7.4.使用意向排他锁
事务一
事务二
添加数据,添加列失败
8.查看锁
Select *from “V$LOCK”
ADDR 列表示锁的内存地址;TRX_ID 列表示锁所属的事务 ID;LTYPE 列表示锁 的类型,可能是 OBJECT(对象锁)或者 TID(TID 锁);LMODE 表示锁的模式,可能的值有 S(共享锁)、X(排他锁)、IS(意向共享锁)、IX(意向排他锁);BLOCKED 列表示 锁是否处于上锁等待状态,0 表示已上锁成功,1 表示处于上锁等待状态;TABLE_ID 列对 于对象锁,表示表对象或字典对象的 ID,对于 TID 锁,表示封锁记录对应的表 ID;ROW_IDX 列为 TID 锁封锁记录的行信息;TID 列为 TID 锁对象事务 ID。
社区地址:https://eco.dameng.com