📜  oracle 事务提交回滚示例 - SQL (1)

📅  最后修改于: 2023-12-03 14:44:56.160000             🧑  作者: Mango

Oracle 事务提交回滚示例 - SQL

在数据库开发中,事务是一个非常常见的概念。事务指的是组成单个逻辑工作单元的一组SQL语句。事务具有ACID(原子性、一致性、隔离性、持久性)特性。其中,原子性指的是事务中的所有操作要么全部执行成功,要么全部失败回滚;一致性指的是事务前后数据状态的一致性;隔离性指的是并发事务之间的独立性;持久性指的是事务一旦提交,对状态的更改需要持久化到磁盘上。

在Oracle中,事务的提交和回滚通过COMMIT和ROLLBACK语句实现。下面是一些示例代码:

事务提交示例

事务提交实现了将所有已执行的SQL语句保存到数据库中的功能。

-- 开始一个事务
BEGIN
  -- 插入一个新记录
  INSERT INTO employees (employee_id, first_name, last_name)
  VALUES (99999, 'John', 'Doe');
  
  -- 更新记录
  UPDATE employees
  SET last_name = 'Doe'
  WHERE employee_id = 99999;
  
  -- 提交
  COMMIT;
END;
事务回滚示例

事务回滚实现了将已执行的SQL语句撤销的功能。

-- 开始一个事务
BEGIN
  -- 插入一个新记录
  INSERT INTO employees (employee_id, first_name, last_name)
  VALUES (99999, 'John', 'Doe');
  
  -- 更新记录
  UPDATE employees
  SET last_name = 'Doe'
  WHERE employee_id = 99999;
  
  -- 回滚
  ROLLBACK;
END;

需要注意的是,事务提交或回滚之后,都会将事务结束并自动开始一个新的事务。

最后,需要注意的是,事务只有在DML(数据操作语言)语句(insert、update、delete)中才能使用。在DDL(数据定义语言)语句(create、alter、drop)中无法使用事务。