mysql ,oracle不一样的一个例子

oracle
SQL> select * from dba_test;

ID

50

session a:
SQL> update dba_test set id=id-10;

1 row updated.

SQL> commit;

在commit前执行session b

session b:
SQL> update dba_test set id=id-30;–被a阻塞,a提交后,

1 row updated.

SQL> select * from dba_test;

ID

10

a提交后,b中的更新依然起作用了,查看id是10

也就是a在提交后,b中的update用了最新的值。

mysql

root@localhost:[(none)] 14:52:41> show variables like ‘%iso%’;
±----------------------±---------------+
| Variable_name | Value |
±----------------------±---------------+
| transaction_isolation | READ-COMMITTED |
| tx_isolation | READ-COMMITTED |
±----------------------±---------------+
2 rows in set (0.00 sec)

root@localhost:[test] 14:53:05> select * from dba_test;
±—±-------+
| id | name |
±—±-------+
| 30 | 我们 |
±—±-------+

session a

root@localhost:[test] 14:53:20> begin;
Query OK, 0 rows affected (0.00 sec)

root@localhost:[test] 14:53:42> update dba_test set id=id-10;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

root@localhost:[test] 14:54:12> commit;
Query OK, 0 rows affected (0.00 sec)

session b;
root@localhost:[test] 14:54:14> update dba_test set id=id-20;
Query OK, 0 rows affected (3.19 sec)
Rows matched: 0 Changed: 0 Warnings: 0

root@localhost:[test] 14:54:27> select * from dba_test;
±—±-------+
| id | name |
±—±-------+
| 20 | 我们 |
±—±-------+
1 row in set (0.00 sec)

可以看到session b是没有更新记录的,并且在b中查看的结果是a的执行结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值