要使用mysql中的事務處理,首先需要建立使用事務表型別(如 bdb = berkeley db 或 innodb )的表。
create table account (
account_id bigint unsigned not null primary key auto_increment,
balance double
) type = innodb;
要在事務表上使用事務處理
,必須要首先關閉自動提交
:set autocommit = 0;
事務處理以 begin 命令開始:
begin;
現在 mysql 客戶處在於伺服器相關的事物上下文中。任何對事務表所做的改變在提交之前不會成為永久性的改變。
update account set balance = 50.25 where account_id = 1;
update account set balance = 100.25 where account_id = 2;
在做出所有的改變之後,使用commit命令完成事務處理:
commit;
當然,事務處理的真正優點是在執行第二條語句發生錯誤時體現出來的,若在提交前終止整個事務,可以進行回滾操作:
rollback;
下面是另乙個例子,通過 mysql 直接進行數**算:
select @first := balance from account where account_id = 1;
select @second := balance from account where account_id = 2;
update account set balance = @first - 25.00 where account_id = 1;
update account set balance = @second + 25.00 where account_id = 2;
除了commit
命令外,
下列命令也會自動結束當前事務
:alter table
begin
create index
drop database
drop table
lock tables
rename table
truncate
unlock tables
內容來自於《
mysql
權威指南
(managing & using mysql)
》, o'reilly & associates, inc.
作者george reese
等。
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事務處理
mysql的事務處理主要有兩種方法 1.用begin,rollback,commit來實現 begin開始乙個事務 rollback事務回滾 commit 事務確認 2.直接用set來改變mysql的自動提交模式 mysql預設是自動提交的,也就是你提交乙個query,就直接執行!可以通過 set ...
mysql事務處理
事務都應該具備acid特徵。所謂acid是atomic 原子性 consistent 一致性 isolated 隔離性 durable 持續性 四個詞的首字母所寫,下面以 銀行轉帳 為例來分別說明一下它們的含義 1 原子性 組成事務處理的語句形成了乙個邏輯單元,不能只執行其中的一部分。換句話說,事務...