mysql事務處理

2021-04-17 19:45:14 字數 1615 閱讀 7199

mysql的事務處理主要有兩種方法

1.用begin,rollback,commit來實現

begin開始乙個事務

rollback事務回滾

commit 事務確認

2.直接用set來改變mysql的自動提交模式

mysql預設是自動提交的,也就是你提交乙個query,就直接執行!可以通過

set autocommit = 0 禁止自動提交

set autocommit = 1 開啟自動提交

來實現事務的處理。

但要注意當用set autocommit = 0 的時候,你以後所有的sql都將作為事務處理,直到你用commit確認或 rollback結束,注意當你結束這個事務的同時也開啟了新的事務!按第一種方法只將當前的做為乙個事務!

mysql只有

innodb和bdb型別的資料表才支援事務處理,其他的型別是不支援的!

mysql5.0 winxp下測試通過~  ^_^

mysql> use test;

database changed

mysql> create table `dbtest`(

-> id int(4)

-> ) type=innodb;

query ok, 0 rows affected, 1 warning (0.05 sec)

mysql> select * from dbtest

-> ;

empty set (0.01 sec)

mysql> begin;

query ok, 0 rows affected (0.00 sec)

mysql> insert into dbtest value(5);

query ok, 1 row affected (0.00 sec)

mysql> insert into dbtest value(6);

query ok, 1 row affected (0.00 sec)

mysql> commit;

query ok, 0 rows affected (0.00 sec)

mysql> select * from dbtest;

+------+

| id   |

+------+

|    5 |

|    6 |

+------+

2 rows in set (0.00 sec)

mysql> begin;

query ok, 0 rows affected (0.00 sec)

mysql> insert into dbtest values(7);

query ok, 1 row affected (0.00 sec)

mysql> rollback;

query ok, 0 rows affected (0.00 sec)

mysql> select * from dbtest;

+------+

| id   |

+------+

|    5 |

|    6 |

+------+

2 rows in set (0.00 sec)

mysql>

MySQL事務處理

start transaction,commit和rollback語法 start transaction begin work commit work and no chain no release rollback work and no chain no release set autocom...

mysql事務處理

事務都應該具備acid特徵。所謂acid是atomic 原子性 consistent 一致性 isolated 隔離性 durable 持續性 四個詞的首字母所寫,下面以 銀行轉帳 為例來分別說明一下它們的含義 1 原子性 組成事務處理的語句形成了乙個邏輯單元,不能只執行其中的一部分。換句話說,事務...

mysql 事務處理

只有 innodb bdb引擎支援事務 如果在執行mysql事務中 一次執行多條sql語句 其中有一條sql語句的表引擎並不支援事務操作 那麼 事務約束將對這條sql語句無效 換句話說 就是 事務執行完成 不管是 rollback 還是 commit 這條語句都不能回滾或者提交 而是在執行這條語句的...