事務是MySQL數據庫中很重要的概念,可以保證多個SQL語句的一致性和完整性。
MySQL中使用以下語句開啟一個事務:
START TRANSACTION;
在事務的過程中,可以執行多個SQL語句,如:
INSERT INTO table1 (id, name) VALUES (1, 'John'); INSERT INTO table2 (id, age) VALUES (1, 25);
如果不出意外,這些SQL語句都會成功執行。但如果其中一條SQL語句執行失敗,怎么辦?這時候就需要使用事務的回滾操作。
回滾操作可以使所有已執行的SQL語句全部撤銷,恢復到事務開啟之前的狀態。回滾操作使用以下語句:
ROLLBACK;
使用回滾操作可以保證事務的完整性。
如果所有SQL語句執行成功,就需要使用以下語句將事務提交:
COMMIT;
提交事務后,所有SQL語句都已被寫到數據庫中。
除了手動開啟、提交和回滾事務外,還可以通過設置MySQL客戶端的自動提交屬性來控制事務。自動提交屬性默認為開啟,即所有SQL語句都會自動提交,如果需要開啟事務,則需要手動關閉自動提交屬性:
SET autocommit = 0;
這樣就可以手動控制事務的提交和回滾操作了。