MariaDB 事務(wù)

2022-08-16 15:31 更新

事務(wù)是順序組操作。 它們作為單個(gè)單元運(yùn)行,并且直到組中的所有操作都成功執(zhí)行時(shí)才終止。 組中的單個(gè)故障會(huì)導(dǎo)致整個(gè)事務(wù)失敗,并導(dǎo)致對(duì)數(shù)據(jù)庫(kù)沒(méi)有影響。

事務(wù)符合ACID(原子性,一致性,隔離和耐久性) - 

  • 原子性 - 它通過(guò)中止故障和回滾更改來(lái)確保所有操作的成功。

  • 一致性 - 它確保數(shù)據(jù)庫(kù)對(duì)成功的事務(wù)應(yīng)用更改。

  • 隔離 - 它使事務(wù)的獨(dú)立事務(wù)操作。

  • 持久性 - 它確保在系統(tǒng)故障的情況下成功事務(wù)的持久性。

在事務(wù)語(yǔ)句的開頭是START TRANSACTION語(yǔ)句,后跟COMMIT和ROLLBACK語(yǔ)句 - 

  • START TRANSACTION - 開始事務(wù)。

  • COMMIT - 保存對(duì)數(shù)據(jù)的更改。

  • ROLLBACK - 結(jié)束事務(wù),銷毀任何更改。

事務(wù)成功時(shí)執(zhí)行COMMIT,失敗時(shí)執(zhí)行ROLLBACK。

- 有些語(yǔ)句會(huì)導(dǎo)致隱式提交,并且在事務(wù)中使用時(shí)也會(huì)導(dǎo)致錯(cuò)誤。 這樣的語(yǔ)句的示例包括但不限于CREATE,ALTER和DROP。

MariaDB事務(wù)還包括SAVEPOINT和LOCK TABLES等選項(xiàng)。 SAVEPOINT設(shè)置一個(gè)恢復(fù)點(diǎn)以利用ROLLBACK。 LOCK TABLES允許在會(huì)話期間控制對(duì)表的訪問(wèn),以防止在某些時(shí)間段內(nèi)進(jìn)行修改。

AUTOCOMMIT變量提供對(duì)事務(wù)的控制。 設(shè)置為1會(huì)強(qiáng)制所有操作都被視為成功事務(wù),而設(shè)置為0會(huì)導(dǎo)致持久性更改只發(fā)生在顯式COMMIT語(yǔ)句上。

事務(wù)的結(jié)構(gòu)

事務(wù)語(yǔ)句的一般結(jié)構(gòu)包括從START TRANSACTION開始。 下一步是插入一個(gè)或多個(gè)命令/操作,插入用于檢查錯(cuò)誤的語(yǔ)句,插入ROLLBACK語(yǔ)句以管理發(fā)現(xiàn)的任何錯(cuò)誤,最后插入COMMIT語(yǔ)句以對(duì)成功的操作應(yīng)用更改。

查看下面給出的示例 -

START TRANSACTION;
SELECT name FROM products WHERE manufacturer = 'XYZ Corp';
UPDATE spring_products SET item = name;
COMMIT;

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)