GBase 8s V8.8 SQL 指南:教程-7.7

7.7 中断了的修改
即使所有软件都没有错误且所有硬件都完全可靠,计算机外部的世界也可干扰它。闪电可
能击中建筑物,中断供电并在您的 UPDATE 语句运行期间停止计算机。当磁盘已满或用 
户提供不正确的数据时,更可能发生的情景是,导致您的多行插入过早停止并产生错误。
在任何情况下,每当您修改数据,您必须假设某种不可预测的事件可中断该修改。
当外部原因导致修改中断时,您不可确定该操作完成了多少。即使在单行操作中,您也不
可知道是否正确地更新了到达了磁盘的数据或索引。
如果多行修改是一个问题,则多语句修改就更糟。通常在程序中嵌入它们,因此您看不到
正在执行的个别 SQL 语句。例如,要在演示数据库中输入新的订单,请执行下列步骤:
1. 在 orders 表中插入一行。(此插入生成一个订单编号。)
2. 对于订购的每一商品,在 items 表中插入一行。
存在两种编制订单输入应用程序的方法。一种方法是使它完全是交互的,以便程序立即插
入第一行,然后在用户输入时插入每一商品。但这种方法使得操作可能遭遇许多更不可预
测的事件:客户的电话电线,用户按错键,用户的终端或计算机断电,等等。
下列列表描述构建订单输入应用程序的正确方法:
• 以交互方式接受所有数据。
• 验证数据并展开它(例如,在 stock 和 manufact 中查找代码)。
• 在屏幕上显示信息以进行检查。
• 等待操作人员进行最终的提交。
• 快速地执行插入。
即使使用这些步骤,不可预测的情况还可在它插入该订单之后,但在它完成插入商品之前
停止该程序。如果发生那种情况,则数据库处于不可预测的状态:它的数据完整性受到损
害。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值