W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
該語句用于開啟事務(wù)。
數(shù)據(jù)庫事務(wù)(Database Transaction)是指作為單個(gè)邏輯工作單元執(zhí)行的一系列操作。事務(wù)處理可以用來維護(hù)數(shù)據(jù)庫的完整性,保證成批的SQL操作全部執(zhí)行或全部不執(zhí)行。
顯示事務(wù)是用戶自定義或用戶指定的事務(wù)。通過 BEGIN TRANSACTION,或 BEGIN 和 BEGIN WORK(被作為START TRANSACTION的別名受到支持)語句顯示開始,以 COMMIT 或 ROLLBACK 語句顯示結(jié)束。
transaction_stmt:
START TRANSACTION [READ ONLY | READ WRITE];
| BEGIN [WORK];
| COMMIT [WORK];
| ROLLBACK [WORK];
| SET TRANSACTION {READ ONLY | READ WRITE};
參數(shù) |
描述 |
---|---|
START TRANSACTION [READ ONLY | READ WRITE] |
開啟事務(wù)語句。一旦開啟事務(wù),則隨后的 SQL 數(shù)據(jù)操作語句(即INSERT、UPDATE、DELETE等)直到顯式提交時(shí)才會(huì)生效。 READ ONLY 子句表示事務(wù)是只讀方式開啟,事務(wù)內(nèi)不允許執(zhí)行修改操作。 READ WRITE 子句表示事務(wù)是讀寫方式開啟,默認(rèn)就是此種模式。 |
BEGIN |
BEGIN 和 BEGIN WORK 被作為 START TRANSACTION 的別名受到支持 |
COMMIT |
提交當(dāng)前事務(wù)。 |
ROLLBACK |
回滾當(dāng)前事務(wù)。 |
SET TRANSACTION {READ ONLY | READ WRITE} |
將當(dāng)前事務(wù)設(shè)置成 READ ONLY 或者 READ WRITE 模式。 |
假設(shè)現(xiàn)有表 a 如下所示。
id |
name |
num |
sell_date |
---|---|---|---|
1 |
a |
100 |
2013-06-21 10:06:43 |
2 |
b |
200 |
2013-06-21 13:07:21 |
3 |
a |
50 |
2013-06-21 13:08:15 |
OceanBase(admin@test)> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)
OceanBase(admin@test)> UPDATE a SET name = 'c' WHERE id = 3;
Query OK, 1 rows affected (0.00 sec)
OceanBase(admin@test)> INSERT INTO a VALUES (4, 'a', 30, '2013-06-21 16:09:13');
Query OK, 1 rows affected (0.00 sec)
OceanBase(admin@test)> COMMIT;
Query OK, 0 rows affected (0.00 sec)
SELECT * FROM a;
結(jié)果如下:
id |
name |
num |
sell_date |
---|---|---|---|
1 |
a |
100 |
2013-06-21 10:06:43 |
2 |
b |
200 |
2013-06-21 13:07:21 |
3 |
c |
50 |
2013-06-21 13:08:15 |
4 |
a |
30 |
2013-06-21 16:09:13 |
注意
在事務(wù)還沒有 COMMIT 之前,您可以查看下本事務(wù)中的操作是否已經(jīng)生效,比如可以在 COMMIT 前,加一句“SELECT * FROM a;"。本事務(wù) session 的訪問能讀到最新的結(jié)果,本事務(wù) session 之外的訪問結(jié)果肯定是沒有生效,在事務(wù)還沒有 COMMIT 前,你之前做的操作除當(dāng)前事務(wù)連接之外都是不可見的。如果您想回滾該事務(wù),直接用“ROOLBACK”代替“COMMIT”。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: