事务是为了实现数据的一致性和并发处理,你对数据进行定义和修改时就会产生事务。
创新互联于2013年创立,先为宏伟等服务建站,宏伟等地企业,进行企业商务咨询服务。为宏伟企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
例如你执行update语句,这时事务就开始了,执行commit会提交事务,而rollback会回滚(撤销)事务。如果你什么也不做,那么正常退出程序时会自动提交,而程序异常中止则会回滚事务。
SQL select * from test_main;
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
oracle的事务是以session开始登录后的第一条DML语句开始的,然后以DDL(drop,create,alter,rename等),TCL的rollback,commit,DCL(grant,revoke)结束。
当然你也可以手动设置事务属性,如只读事务或者顺序事务:
set transaction read only
set transaction isolation level SERIALIZABLE