事务中的锁操作,UNLOCK自动提交事务。
来源:互联网 发布:mac 命令行创建文件夹 编辑:程序博客网 时间:2024/06/11 04:21
mysql> COMMIT; #提交事务
Query OK, 0 rows affected (0.00 sec)
mysql> select title from feedback where id=1;
+-------+
| title |
+-------+
| 0 |
+-------+
1 row in set (0.00 sec)
mysql> #会话a
mysql> START TRANSACTION; #开始事务1
Query OK, 0 rows affected (0.00 sec)
mysql> select title from feedback where id=1;#事务B update 修改title=1后(未提交)
+-------+
| title |
+-------+
| 1 |
+-------+
1 row in set (0.00 sec)
mysql> select sleep(10) from feedback where id < 5;#隐式读锁执行
+-----------+
| sleep(10) |
+-----------+
| 0 |
| 0 |
| 0 |
| 0 |
+-----------+
4 rows in set (40.00 sec)
mysql> select title from feedback where id=1;#写锁状态等待
+-------+
| title |
+-------+
| 写1 |
+-------+
1 row in set (54.02 sec)
mysql> COMMIT; #提交事务
Query OK, 0 rows affected (0.00 sec)
mysql> select * from a limit 1,1; #对a表操作
+-----+-----+-------+
| uid | gid | title |
+-----+-----+-------+
| 2 | 0 | aaaa2 |
+-----+-----+-------+
1 row in set (0.00 sec)
mysql> select * from b limit 1,1; #对b表操作
+----+-----+--------------+------+
| id | uid | urluid | jid |
+----+-----+--------------+------+
| 2 | 3 | xx.php?uid=3 | NULL |
+----+-----+--------------+------+
1 row in set (0.00 sec)
mysql> #会话b
mysql> START TRANSACTION; #开始事务2
Query OK, 0 rows affected (0.00 sec)
mysql> update feedback set title='1' where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from a limit 1,1; #对a表操作
+-----+-----+-------+
| uid | gid | title |
+-----+-----+-------+
| 2 | 0 | aaaa2 |
+-----+-----+-------+
1 row in set (0.00 sec)
mysql> select * from b limit 1,1; #对b表操作
+----+-----+--------------+------+
| id | uid | urluid | jid |
+----+-----+--------------+------+
| 2 | 3 | xx.php?uid=3 | NULL |
+----+-----+--------------+------+
1 row in set (0.00 sec)
mysql>
mysql> LOCK TABLES feedback WRITE;#加上写锁
Query OK, 0 rows affected (34.92 sec)
mysql> update feedback set title='写1' where id=1;#写锁状态,执行写操作
Query OK, 1 row affected (0.09 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> UNLOCK TABLES; #解除锁(注意:当当前所有的表均被锁定时,UNLOCK TABLES可以提交事务,我想UNLOCK TABLES但不想提交事务,怎么办?)
Query OK, 0 rows affected (0.00 sec)
mysql> COMMIT; #提交事务
Query OK, 0 rows affected (0.00 sec)
mysql> select title from feedback where id=1;
+-------+
| title |
+-------+
| 0 |
+-------+
1 row in set (0.00 sec)
mysql> select title from feedback where id=1;#事务B update 修改title=1后(未提交)
+-------+
| title |
+-------+
| 0 |
+-------+
1 row in set (0.00 sec)
mysql> select title from feedback where id=1;#写锁状态等待
+-------+
| title |
+-------+
| 写1 |
+-------+
1 row in set (32.86 sec)
- 事务中的锁操作,UNLOCK自动提交事务。
- 自动提交事务
- 自动提交 与 事务
- Spring事务 之 事务自动提交
- MySQL事务autocommit自动提交
- MySQL事务autocommit自动提交
- connection.autocommit自动提交事务
- 关于jdbc事务自动提交
- MySQL事务autocommit自动提交
- SSH 配置自动提交事务
- MySQL事务autocommit自动提交
- MySQL事务autocommit自动提交
- 数据库中的事务操作
- JDBC中的事务操作
- Spring中的事务操作
- ThinkPHP5中的事务操作
- Spring事务之七(事务自动提交)
- 事务与锁定-设置自动提交
- 如何找哪些连接出长时间持有着某个锁?
- mysql事务隔离级别设置与查看
- mysql事务隔离级别举例
- 乐观锁与悲观锁
- MYSQL事务与锁,需要手动加锁吗?
- 事务中的锁操作,UNLOCK自动提交事务。
- MYSQL事务中用行锁
- web并发访问执行
- 为什么要加锁?行锁、读锁(共享锁)、写锁(排它锁)
- web服务器最大连接数
- 用户并发浏览服务器生成进程数
- Web服务器的工作原理与安全防护策略
- PHP运行模式(cgi,fast-cgi,cli,web模块模式)
- 【转载】在mysql中获取insert插入数据的id的方法SELECT LAST_INSERT_ID();