十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
SQL select * from test_main;
創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營(yíng)銷推廣、網(wǎng)站重做改版、巴彥淖爾網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、商城開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為巴彥淖爾等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
ID VALUE
---------- --------------------
2 TWO
3 THREE
1 ONE
SQL BEGIN
2 -- 插入2條同樣的數(shù)據(jù),使主鍵重復(fù),引發(fā)錯(cuò)誤后回滾事務(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ù)是為了實(shí)現(xiàn)數(shù)據(jù)的一致性和并發(fā)處理,你對(duì)數(shù)據(jù)進(jìn)行定義和修改時(shí)就會(huì)產(chǎn)生事務(wù)。
例如你執(zhí)行update語(yǔ)句,這時(shí)事務(wù)就開(kāi)始了,執(zhí)行commit會(huì)提交事務(wù),而rollback會(huì)回滾(撤銷)事務(wù)。如果你什么也不做,那么正常退出程序時(shí)會(huì)自動(dòng)提交,而程序異常中止則會(huì)回滾事務(wù)。
oracle的事務(wù)是以session開(kāi)始登錄后的第一條DML語(yǔ)句開(kāi)始的,然后以DDL(drop,create,alter,rename等),TCL的rollback,commit,DCL(grant,revoke)結(jié)束。
當(dāng)然你也可以手動(dòng)設(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è)一隊(duì)','堵漏',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('語(yǔ)句執(zhí)行成功');
exception
when others then
rollback;
dbms_output.PUT_LINE('語(yǔ)句執(zhí)行失敗');
end;
/