直接删除期间的错误

当发生错误时,该语句提前终止。SQLSTATE 中的值和 SQLCODE 中的值以及 SQLERRD 的第二个元素说明它的原因,且行的计数显示删除了的行数。对于许多错误,由于错误阻止数据库服务器开始操作,因此那个计数为零。例如,如果不存在命名的表,或如果重命名 WHERE 子句中测试的列,则不会尝试任何删除。

然而,在操作开始且处理某些行之后,可发现某些错误。这些错误中最常见的是锁冲突。在数据库服务器可删除那行之前,它必须获取行上的排他锁。其他程序可能正在使用来自该表的行,阻止该数据库服务器锁定行。由于锁定的问题影响所有类型的修改,因此在 对多用户环境编程 中讨论它。

另外,在删除开始之后,可出现较少见的错误类型。例如,在更新数据库时发生硬件错误。