扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
SQL select * from test_main;
创新互联公司专注于企业全网整合营销推广、网站重做改版、巴彦淖尔网站定制设计、自适应品牌网站建设、H5技术、商城开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为巴彦淖尔等各大城市提供网站开发制作服务。
ID VALUE
---------- --------------------
2 TWO
3 THREE
1 ONE
SQL BEGIN
2 -- 插入2条同样的数据,使主键重复,引发错误后回滚事务.
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 -- 回滚事务
11 ROLLBACK;
12 END;
13 /
PL/SQL procedure successfully completed.
SQL select * from test_main;
ID VALUE
---------- --------------------
2 TWO
3 THREE
1 ONE
SQL
事务是为了实现数据的一致性和并发处理,你对数据进行定义和修改时就会产生事务。
例如你执行update语句,这时事务就开始了,执行commit会提交事务,而rollback会回滚(撤销)事务。如果你什么也不做,那么正常退出程序时会自动提交,而程序异常中止则会回滚事务。
oracle的事务是以session开始登录后的第一条DML语句开始的,然后以DDL(drop,create,alter,rename等),TCL的rollback,commit,DCL(grant,revoke)结束。
当然你也可以手动设置事务属性,如只读事务或者顺序事务:
set transaction read only
set transaction isolation level SERIALIZABLE
登陆sqlplus,执行如下操作:
set serverout on;
begin
insert into zyb values('zy2002001','112201001','y001',10000,'张三','05-01-2002','05-04-2002','05-25-2002','作业公司作业一队','堵漏',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('语句执行成功');
exception
when others then
rollback;
dbms_output.PUT_LINE('语句执行失败');
end;
/
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流