事务 transaction
1, 概念
一系列操作, 要么都完成, 要么都失败.
事务开始于一条DML语句, 结束于 commit/rollback.
commit 提交, 写入磁盘.
rollback 回退, 取消事务中的所有操作.
注意:
1, DDL(如建表), DCL(如授权) 每条语句都默认有个commit.
2, 正常断开连接会commit, 非正常断开会rollback.
2, 举例- rollback
SQL> create table dept3 as (select * from dept);
SQL> select * from dept3;
DEPTNO DNAME LOC
---------- ---------------------------- ----------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> delete from dept3 where deptno = 30;
已删除 1 行。
SQL> update dept3 set dname = dname||'--';
已更新3行。
SQL> select * from dept3;
DEPTNO DNAME LOC
---------- ---------------------------- ----------
10 ACCOUNTING-- NEW YORK
20 RESEARCH-- DALLAS
40 OPERATIONS-- BOSTON
SQL> rollback;
回退已完成。
SQL> select * from dept3;
DEPTNO DNAME LOC
---------- ---------------------------- ---------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
1, 概念
一系列操作, 要么都完成, 要么都失败.
事务开始于一条DML语句, 结束于 commit/rollback.
commit 提交, 写入磁盘.
rollback 回退, 取消事务中的所有操作.
注意:
1, DDL(如建表), DCL(如授权) 每条语句都默认有个commit.
2, 正常断开连接会commit, 非正常断开会rollback.
2, 举例- rollback
SQL> create table dept3 as (select * from dept);
SQL> select * from dept3;
DEPTNO DNAME LOC
---------- ---------------------------- ----------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> delete from dept3 where deptno = 30;
已删除 1 行。
SQL> update dept3 set dname = dname||'--';
已更新3行。
SQL> select * from dept3;
DEPTNO DNAME LOC
---------- ---------------------------- ----------
10 ACCOUNTING-- NEW YORK
20 RESEARCH-- DALLAS
40 OPERATIONS-- BOSTON
SQL> rollback;
回退已完成。
SQL> select * from dept3;
DEPTNO DNAME LOC
---------- ---------------------------- ---------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON