GBase 8s SQL 指南:教程 / 修改数据 |
即使所有软件都没有错误且所有硬件都完全可靠,计算机外部的世界也可干扰它。闪电可能击中建筑物,中断供电并在您的 UPDATE 语句运行期间停止计算机。当磁盘已满或用户提供不正确的数据时,更可能发生的情景是,导致您的多行插入过早停止并产生错误。在任何情况下,每当您修改数据,您必须假设某种不可预测的事件可中断该修改。
当外部原因导致修改中断时,您不可确定该操作完成了多少。即使在单行操作中,您也不可知道是否正确地更新了到达了磁盘的数据或索引。
存在两种编制订单输入应用程序的方法。一种方法是使它完全是交互的,以便程序立即插入第一行,然后在用户输入时插入每一商品。但这种方法使得操作可能遭遇许多更不可预测的事件:客户的电话电线,用户按错键,用户的终端或计算机断电,等等。
即使使用这些步骤,不可预测的情况还可在它插入该订单之后,但在它完成插入商品之前停止该程序。如果发生那种情况,则数据库处于不可预测的状态:它的数据完整性受到损害。