原因
用户发出目标表的 START VIOLATIONS TABLE 语句。数据库服务器无法创建该目标表的违例表。任何以下情况可能是此失败的原因:
- 目标表已有违例表。
- 您在 START VIOLATIONS TABLE 语句中指定了无效的违例表名称。例如:省略了语句中的 USING
子句且如果目标表中的字符数加上四个字符长于标识符的最大长度,那么生成的违例表名称超过标识符的最大长度。
- 您在 START VIOLATIONS TABLE 语句中指定的违例表名称与数据库中现有表名称匹配。
- 目标表包含名称为 gbasedbt_tupleid 、gbasedbt_optype 或 gbasedbt_recowner
的列。由于这些列名与违例表中的 gbasedbt_tupleid 、gbasedbt_optype 或 gbasedbt_recowner
列重复,因此数据库服务器无法创建违例表。
- 目标表是临时表。
- 目标表正在充当某些其他表的违例表。
- 目标表是系统目录表。
操作
要解决此错误,请执行以下操作之一:
- 如果违例表的名称是无效的,那么在 START VIOLATIONS TABLE 语句的 USING 子句中指定违例表的唯一名称。
- 如果目标表包含名称为 gbasedbt_tupleid 、gbasedbt_optype 或 gbasedbt_recowner
的列,请将它们重命名为其他名称。
- 选择不是系统目录表的永久目标表,或不是其他表的违例表的永久目标表。