什麼是事務?mysql
事務是邏輯上的一組操做,組成這組操做的各個單元,要不全都成功要不全都失敗,這個特性就是事務sql
注意:mysql數據支持事務,可是要求必須是innoDB存儲引擎數據庫
解決這個問題:安全
mysql的事務解決這個問題,由於mysql的事務特性,要求這組操做,要不全都成功,要不全都失敗,這樣就避免了某個操做成功某個操做失敗。利於數據的安全ide
如何使用:測試
(1)在執行sql語句以前,咱們要開啓事務 start transaction;spa
(2)正常執行咱們的sql語句blog
(3)當sql語句執行完畢,存在兩種狀況:事務
1,全都成功,咱們要將sql語句對數據庫形成的影響提交到數據庫中,committget
2,某些sql語句失敗,咱們執行rollback(回滾),將對數據庫操做趕忙撤銷
sql測試:
create table test.t1 (c1 int);
ENGINE = InnoDB;
START TRANSACTION;
insert into test.t1 select 1;
select * from test.t1;
rollback;
select 2,c1 from test.t1;
insert into test.t1 select 2;
commit;
select 3,c1 from test.t1;
insert into test.t1 select 3;
select 4,c1 from test.t1;
note:
若是生產數據庫要更新的條目過多,能夠使用開啓事務。