在 mysql 命令列的預設設定下,事務都是自動提交的,即執行 sql 語句後就會馬上執行 commit 操作。因此要顯式地開啟乙個事務務須使用命令 begin 或 start transaction,或者執行命令 set autocommit=0,用來禁止使用當前會話的自動提交。
菜鳥教程:
1、用 begin, rollback, commit來實現
2、直接用 set 來改變 mysql 的自動提交模式:
資料庫事務操作例項:
mysql>資料庫事務操作例項userunoob;
database
changed
mysql
>
create
table runoob_transaction_test( id int(5)) engine=
innodb; # 建立資料表
query ok,
0 rows affected (0.04
sec)
mysql
>
select
*from
runoob_transaction_test;
empty
set (0.01
sec)
mysql
>
begin
; # 開始事務
query ok,
0 rows affected (0.00
sec)
mysql
>
insert
into runoob_transaction_test value(5
);query ok,
1 rows affected (0.01
sec)
mysql
>
insert
into runoob_transaction_test value(6
);query ok,
1 rows affected (0.00
sec)
mysql
>
commit
; # 提交事務
query ok,
0 rows affected (0.01
sec)
mysql
>
select
*from
runoob_transaction_test;+--
----+
| id |+--
----+|5
||6|
+------+
2 rows in
set (0.01
sec)
mysql
>
begin
; # 開始事務
query ok,
0 rows affected (0.00
sec)
mysql
>
insert
into runoob_transaction_test values(7
);query ok,
1 rows affected (0.00
sec)
mysql
>
rollback
; # 回滾
query ok,
0 rows affected (0.00
sec)
mysql
>
select
*from
runoob_transaction_test; # 因為回滾所以資料沒有插入+--
----+
| id |+--
----+|5
||6|
+------+
2 rows in
set (0.01
sec)
mysql
>
mysql事務操作 mysql的事務操作
倒著思考。杜絕純粹的知識填鴨教育 少廢話,是上 update table1 set money 100 where id 1 a賬戶減少100元 update table2 set money 100 where id 2 b 賬戶增加100元 問題 這是乙個簡單的銀行轉賬案例sql,由於伺服器等未...
MySQL事務操作
在 mysql 命令列的預設設定下,事務都是自動提交的,即執行 sql 語句後就會馬上執行 commit 操作。因此要顯式地開啟乙個事務務須使用命令 begin 或 start transaction,或者執行命令 set autocommit 0,用來禁止使用當前會話的自動提交。菜鳥教程 1 用 ...
mysql事務操作
當把多個操作當做乙個事務時,這些操作具有一下特點 mysql select autocommit 檢視autocommit autocommit 1 1 row in set 0.00 sec mysql set autocommit 0 將autocommit設定為0,防止自動提交 query o...