MySql学习笔记之——管理事务处理

管理事务处理

1、事务处理

事务处理(transaction processing)可以用来维护数据库的完整性,它保证成批的 MySQL 操作要么完全执行,要么完全不执行。

orders 表就是一个很好的例子。订单存储在 orders 和 orderitems 两个表中:orders 存储实际的订单,而 orderitems 存储订购的各项物品。这两个表使用称为主键的唯一 ID 互相关联。这两个表又与包含客户和产品信息的其他表相关联。

给系统添加订单的过程如下:

  1. 检查数据库中是否存在相应的客户(从 customers 表中查询),如果不存在,添加;
  2. 检索客户的 ID;
  3. 添加一行到 orders 表,把它与客户 ID 关联;
  4. 检索 orders 表中赋予的新订单 ID;
  5. 对于订购的每个物品在 orderitems 表中添加一行,通过检索出来的 ID 把它与 orders 表关联(以及通过产品 ID 与 products 表关联)。

现在,假如由于某种数据库故障(如超出磁盘空间、安全限制、表锁等)阻止了这个过程的完成。数据库中的数据会出现什么情况?

如果故障发生在添加了客户之后,orders 表添加之前,不会有什么问题。某些客户没有订单是完全合法的。在重新执行此过程时,所插入的客户记录将被检索和使用。可以有效地从故障的地方开始执行此过程。

但是,如果故障发生在 orders 行添加之后,orderitems 行添加之前,怎么办呢?现在,

你可能感兴趣的:(MySQL数据库基础+高级,数据库,mysql,sql)