mysql 事務初步了解

2021-09-02 23:16:11 字數 2476 閱讀 7436

1關鍵字begin開啟事務,中間執行相關sql語句,最後commit提交完成事務

mysql> begin;

query ok, 0 rows affected (0.00 sec)

mysql> insert into student (stu_id,name,c_id) values ('100','soul','1');

query ok, 1 row affected (0.00 sec)

mysql> commit;

query ok, 0 rows affected (0.04 sec)

mysql> select * from student where stu_id='100';

+--------+------+------+

| stu_id | name | c_id |

+--------+------+------+

| 100 | soul | 1 |

+--------+------+------+

1 row in set (0.00 sec)

2.在事務中執行的sql語句在commit之前可以回滾rollback

mysql> begin;

query ok, 0 rows affected (0.00 sec)

mysql> delete from student;

query ok, 7 rows affected (0.03 sec)

mysql> select count(*) from student;

+----------+

| count(*) |

+----------+

| 0 |

+----------+

1 row in set (0.00 sec)

mysql> rollback;

query ok, 0 rows affected (0.06 sec)

mysql> select count(*) from student;

+----------+

| count(*) |

+----------+

| 7 |

+----------+

1 row in set (0.00 sec)

mysql> commit;

query ok, 0 rows affected (0.00 sec)

mysql> select count(*) from student;

+----------+

| count(*) |

+----------+

| 7 |

+----------+

1 row in set (0.00 sec)

3.在事務中操作某條資料時,其他sql語句無法對其操作

事務內插入資料,外部不可見

mysql> begin;

query ok, 0 rows affected (0.00 sec)

mysql> insert into student (stu_id,name,c_id) values ('101','soul','1');

query ok, 1 row affected (0.00 sec)

mysql> select * from student where stu_id="101";

+--------+------+------+

| stu_id | name | c_id |

+--------+------+------+

| 101 | soul | 1 |

+--------+------+------+

1 row in set (0.00 sec)

mysql> select * from student where stu_id="101";

empty set (0.00 sec)

事務內修改資料,外部無法同時修改,會一直阻塞到commit

mysql> begin;

query ok, 0 rows affected (0.00 sec)

mysql> update student set name="abc" where stu_id="101";

query ok, 1 row affected (0.05 sec)

rows matched: 1 changed: 1 warnings: 0

mysql> update student set name="ccc" where stu_id="101";

error 1205 (hy000): lock wait timeout exceeded; try restarting transaction

了解mysql 事務介紹

目錄 事務由單獨單元的乙個或多個sql語句組成,在這個單元中,每乙個mysql語句是相互依賴的 由於整個單獨單元作為不可分割的整體,那麼如果單元中某條sql語句一旦執行失敗或產生失敗,整個單元就會回滾。要麼全部成功,要麼全部失敗。在mysql中用的最多的儲存引擎有 innodb,myisam,mem...

對springBoot事務的一些初步了解

事務的兩種管理方式 業務中相關的應用 事務由單獨單元的乙個或者多個sql語句組成,在這個單元中,每個sql語句時相互依賴的。而整個單獨單元作為乙個不可分割的整體,如果單元中某條sql語句一旦執行失敗或者產生錯誤,整個單元將會回滾,也就是所有受到影響的資料將會返回到事務開始以前的狀態 如果單元中的所有...

C Boost 初步了解

boost是由c 標準委員會成員發起 眾多c 業界高人參與設計並實現的乙個涉及面廣 質量高且業已廣泛使用的c 標準後備庫,其中 tr1已經被納入c 0x標準庫。不論從風格和內容組織上講,都可以認為boost專案是c 標準庫的延伸。截止到boost 1.43版本,boost專案擁有大約100個用途廣泛...