数据库事务

事务(transaction):是需要在同一个处理单元中执行的一系列更新处理的集合(INSERT/DELETE/UPDATE)
事务语法:
	事务开始语句(START TRANSACTION):
	DML语句1
	DML语句1
	DML语句1
	...
	事务结束语句(COMMIT或者ROLLBACK)

START TRANSACTION;
--运动T恤的销售单价下调1000日元
UPDATE Product
	 SET sale_price = sale_price - 1000
 WHERE product_name = '运动T恤';

-- T恤的销售单价上浮1000日元
UPDATE Product
	 SET sale_price = sale_price + 1000
 WHERE product_name = 'T恤';
COMMIT;

注:orcle和db2没有特定的开始语句

COMMIT:事务一旦提交就无法恢复到开始前的状态了

ROLLBACK:一旦回滚,数据库就会恢复到事务开始之前的状态

事务的四种特性:
  • 原子性:事务结束时,其中包含的更新处理要么全部执行,要么全部不执行。
  • 一致性(完整性):事务中包含的处理要满足数据库提前设置的约束,如主键约束或者not null约束。(违反约束会导致失败)
  • 隔离性:保证不同的事物之间互不干扰。该特性保证了事物之前互相不嵌套,某个事物进行中的更改,在改事物结束之前,对其他事物而言是不可见的。没有提交之前,其他事物看不到新添加的记录。
  • 持久性:事物结束后,DBMS能保证该时间点的数据转态会被保存的特性。
原文地址:https://www.cnblogs.com/sanzashu/p/11026910.html