SQL select * from test_main;
創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、巴彥淖爾網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、商城開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為巴彥淖爾等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
ID VALUE
---------- --------------------
2 TWO
3 THREE
1 ONE
SQL BEGIN
2 -- 插入2條同樣的數(shù)據(jù),使主鍵重復(fù),引發(fā)錯誤后回滾事務(wù).
3 INSERT INTO test_main(id, value) VALUES (4, 'FOUR');
4 INSERT INTO test_main(id, value) VALUES (4, 'FOUR');
5 COMMIT;
6 EXCEPTION
7 WHEN OTHERS THEN
8 dbms_output.put_line('Error Code = ' || TO_CHAR(SQLCODE) );
9 dbms_output.put_line('Error Message = ' || SQLERRM );
10 -- 回滾事務(wù)
11 ROLLBACK;
12 END;
13 /
PL/SQL procedure successfully completed.
SQL select * from test_main;
ID VALUE
---------- --------------------
2 TWO
3 THREE
1 ONE
SQL
事務(wù)是為了實現(xiàn)數(shù)據(jù)的一致性和并發(fā)處理,你對數(shù)據(jù)進行定義和修改時就會產(chǎn)生事務(wù)。
例如你執(zhí)行update語句,這時事務(wù)就開始了,執(zhí)行commit會提交事務(wù),而rollback會回滾(撤銷)事務(wù)。如果你什么也不做,那么正常退出程序時會自動提交,而程序異常中止則會回滾事務(wù)。
oracle的事務(wù)是以session開始登錄后的第一條DML語句開始的,然后以DDL(drop,create,alter,rename等),TCL的rollback,commit,DCL(grant,revoke)結(jié)束。
當然你也可以手動設(shè)置事務(wù)屬性,如只讀事務(wù)或者順序事務(wù):
set transaction read only
set transaction isolation level SERIALIZABLE
登陸sqlplus,執(zhí)行如下操作:
set serverout on;
begin
insert into zyb values('zy2002001','112201001','y001',10000,'張三','05-01-2002','05-04-2002','05-25-2002','作業(yè)公司作業(yè)一隊','堵漏',7000,2500,1000,1400,11900,'李四','05-26-2002',11900,'王五','05-28-2002');
insert into clfb values('zy2002001','wm001',200,10);
insert into clfb values('zy2002001','wm002',200,10);
insert into clfb values('zy2002001','wm003',200,10);
insert into clfb values('zy2002001','wm004',100,10);
commit;
dbms_output.PUT_LINE('語句執(zhí)行成功');
exception
when others then
rollback;
dbms_output.PUT_LINE('語句執(zhí)行失敗');
end;
/