使用 START VIOLATIONS TABLE 语句来为指定的目标表创建违反表和诊断表。START VIOLATIONS TABLE 语句是对 SQL 的 ANSI/ISO 标准的扩展。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
diagnostics | 声明要与目标 table 相关联的诊断表的名称。缺省名称为 table_dia。 | 在表、视图、序列和同义词的名称中必须是唯一的 | 标识符 |
num_rows | 当在 table 上执行单个语句时,数据库服务器可插入到 violations 内的行的最大数目 | 必须为从 1 至 INTEGER 数据类型的最大值之间的整数 | 文字的数值 |
owner | table 的所有者 | 必须拥有该表 | 所有者名称 |
table | 要为其创建 violations 表和 diagnostics 表的目标表 | 如果忽略 USING 子句,则不超过 124 字节 | 标识符 |
violations | 要与 table 相关联的违反表。缺省的名称为 table_vio。 | 与 diagnostics 的约束相同 | 标识符 |
数据库服务器将 violations 表和 diagnostics 表与您在 FOR 关键字之后指定的目标表相关联,通过在 sysviolations 系统目录表中记录三表之间的关系。
START VIOLATIONS TABLE 语句创建特定的违反表,该表持有在目标表上执行插入、更新和删除操作期间不能满足约束和唯一索引的不符合的那些行。此语句还创建特定的诊断表,该表包含关于在违反行中的每一行导致的完整性违反的信息。