在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫/ PL/SQL事務
PL/SQL記錄
PL/SQL基本語法
PL/SQL集合
PL/SQL包
PL/SQL關(guān)系運算符
PL/SQL比較運算符
PL/SQL條件控制
PL/SQL字符串
PL/SQL算術(shù)運算符
PL/SQL變量
PL/SQL IF-THEN-ELSIF語句
PL/SQL函數(shù)
PL/SQL異常
PL/SQL FOR循環(huán)語句
PL/SQL日期及時間
PL/SQL EXIT語句
PL/SQL DBMS輸出
PL/SQL過程
PL/SQL CONTINUE語句
PL/SQL數(shù)組
PL/SQL嵌套IF-THEN-ELSE語句
PL/SQL事務
PL/SQL CASE語句
PL/SQL IF-THEN語句
PL/SQL GOTO語句
PL/SQL運算符優(yōu)先級
PL/SQL觸發(fā)器
PL/SQL運算符
PL/SQL教程
PL/SQL WHILE循環(huán)語句
PL/SQL面向?qū)ο?/span>
PL/SQL循環(huán)
PL/SQL邏輯運算符
PL/SQL IF-THEN-ELSE語句
PL/SQL數(shù)據(jù)類型
PL/SQL環(huán)境安裝設(shè)置
PL/SQL游標
PL/SQL基本循環(huán)語句
PL/SQL搜索CASE語句
PL/SQL常量和文字
PL/SQL嵌套循環(huán)

PL/SQL事務

數(shù)據(jù)庫事務是一個工作的原子單元,其可以由一個或多個相關(guān)的SQL語句組成。所謂的原子性就是數(shù)據(jù)庫的修改所帶來的構(gòu)成事務的SQL語句可以集體被提交,即永久到數(shù)據(jù)庫或從數(shù)據(jù)庫中(撤消)回滾。

一個成功執(zhí)行的SQL語句和提交的事務不一樣。即使一個SQL語句執(zhí)行成功,除非包含該語句的事務被提交,但也可以回滾和聲明(S)的所有更改可以撤消。

開始/結(jié)束事務

事務都有開始和結(jié)束。事務開始時有下列事件之一:

  • 連接到數(shù)據(jù)庫后執(zhí)行的第一個SQL語句。

  • 在事務完成之后發(fā)出每一個新的SQL語句完成。

事務結(jié)束時的下列事件之一發(fā)生:

  • COMMIT或發(fā)出ROLLBACK語句。

  • DDL語句,如CREATE TABLE語句,則發(fā)出;因為在這種情況下,COMMIT被自動執(zhí)行。

  • 一個DCL語句,比如一個GRANT語句發(fā)出; 因為在這種情況下,COMMIT被自動執(zhí)行。

  • 用戶從數(shù)據(jù)庫斷開。

  • 從SQL* PLUS用戶退出通過發(fā)出EXIT指令,COMMIT自動執(zhí)行。

  • SQL* Plus異常終止,自動執(zhí)行ROLLBACK。

  • 一個DML語句失敗; 在這種情況下自動執(zhí)行撤消DML語句ROLLBACK。

提交事務

事務是通過發(fā)出SQL命令COMMIT永久生效。COMMIT命令的一般語法是:

COMMIT;

示例,

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (2, 'Khilan', 25, 'Delhi', 1500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (3, 'kaushik', 23, 'Kota', 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (4, 'Chaitali', 25, 'Mumbai', 6500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (5, 'Hardik', 27, 'Bhopal', 8500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (6, 'Komal', 22, 'MP', 4500.00 );
COMMIT;

回滾事務

對數(shù)據(jù)庫所做的不提交更改可以使用ROLLBACK命令撤消。

ROLLBACK命令的一般語法是:

ROLLBACK [TO SAVEPOINT < saveyiibai_name>];

當一個事務因一些前所未有的情況中止,如系統(tǒng)故障,則整個事務由于提交自動回滾。如果不使用保存點,然后簡單地使用下面的語句來回滾所有的變化:

ROLLBACK;

保存點

保存點是某種標志,幫助分裂一個長事務分成更小的單位設(shè)置了一些檢查點。由一個長事務中設(shè)置保存點,可以根據(jù)需要回滾到一個檢查點。這是通過發(fā)出SAVEPOINT命令來完成。  

保存點命令的一般語法是:

SAVEPOINT < saveyiibai_name >;

示例:

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (7, 'Rajnish', 27, 'HP', 9500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (8, 'Riddhi', 21, 'WB', 4500.00 );
SAVEPOINT sav1;

UPDATE CUSTOMERS
SET SALARY = SALARY + 1000;
ROLLBACK TO sav1;

UPDATE CUSTOMERS
SET SALARY = SALARY + 1000
WHERE ID = 7;
UPDATE CUSTOMERS
SET SALARY = SALARY + 1000
WHERE ID = 8;
COMMIT;

在這里,ROLLBACK TO sav1; 聲明回滾變化到一點,在那里標志著保存點sav1,之后將開始新的變化。

自動事務控制

要執(zhí)行一個自動COMMIT在每一個INSERT,UPDATE或DELETE命令執(zhí)行時,可以設(shè)置AUTOCOMMIT環(huán)境變量:

SET AUTOCOMMIT ON;

可以關(guān)閉使用以下命令自動提交模式:

SET AUTOCOMMIT OFF;

上一篇:PL/SQL運算符下一篇:PL/SQL常量和文字