MySQL是一種常用的關系數據庫管理系統,支持事務操作。在使用MySQL進行事務處理時,有時需要判斷事務是否已經提交。下面介紹一些判斷MySQL事務提交的方法。
START TRANSACTION; # 開始事務 ... # 執行SQL語句 SELECT @@AUTOCOMMIT; # 查詢是否是自動提交 COMMIT; # 提交事務 SELECT @@AUTOCOMMIT; # 查詢是否是自動提交
在上面的代碼中,我們首先使用START TRANSACTION語句開啟一個事務,然后執行一些SQL語句。接著,使用SELECT @@AUTOCOMMIT查詢是否是自動提交。若返回值為1,則代表是自動提交,此時事務已經提交。若返回值為0,則代表不是自動提交,此時執行COMMIT語句提交事務。最后,再次使用SELECT @@AUTOCOMMIT查詢是否是自動提交,若返回值為1,則代表事務已提交成功。
SHOW VARIABLES LIKE 'autocommit'; # 查看是否是自動提交 START TRANSACTION; # 開始事務 ... # 執行SQL語句 SELECT @@TX_ISOLATION; # 查詢事務隔離級別 COMMIT; # 提交事務
在上面的代碼中,我們首先使用SHOW VARIABLES LIKE 'autocommit'命令查看是否是自動提交。接著,使用START TRANSACTION語句開啟一個事務,然后執行一些SQL語句。通過SELECT @@TX_ISOLATION查詢事務隔離級別。最后,使用COMMIT語句提交事務。如果事務提交成功,則說明事務已經提交,否則事務未提交。
SELECT * FROM information_schema.innodb_trx\G; # 查詢事務信息 START TRANSACTION; # 開始事務 ... # 執行SQL語句 SELECT * FROM information_schema.innodb_trx\G; # 再次查詢事務信息 COMMIT; # 提交事務
在上面的代碼中,我們使用SELECT * FROM information_schema.innodb_trx\G查詢事務信息。接著,使用START TRANSACTION語句開啟一個事務,然后執行一些SQL語句。再次使用SELECT * FROM information_schema.innodb_trx\G查詢事務信息。如果查詢到的事務狀態變化了,則說明事務已經提交。最后,使用COMMIT語句提交事務。