南大通用GBase8s 常用SQL语句(280)

    1. STOP VIOLATIONS TABLE 语句

使用 STOP VIOLATIONS TABLE 语句来删除目标表、它的违反表与它的诊断表之间的关联。此语句是对 SQL 的 ANSI/ISO 标准的扩展。

语法

 

元素

描述

限制

语法

owner

table 的所有者

必须拥有该表

所有者名称 

table 

与要删除的违反表和诊断表相关联的目标表的名称。不存在缺省值。

必须是与违反表和诊断表相关联的本地表

标识符 

用法

STOP VIOLATIONS TABLE 语句删除目标表、违反表与诊断表之间的关联。在您发出此语句之后,以前的违反表和诊断表继续存在,但不再作为该目标表的违反表和诊断表。现在,它们有常规的数据库表的状态,而不是目标表的违反表和诊断表。您必须发出 DROP TABLE 语句来显式地删除这两个表。

当 DML 操作(INSERT、DELETE 或 UPDATE)对目标表的行造成数据完整性违反时,不再将不符合的行过滤到以前的违反表,且不将关于数据完整性违反的诊断信息放置到以前的诊断表中。

停止违反表和诊断表的示例

假设名为 cust_subset 的目标表与名为 cust_subset_vio 的违反表相关联,且与名为 cust_subset_dia 的诊断表相关联。要删除目标表与违反表和诊断表之间的关联,请输入下列语句:

STOP VIOLATIONS TABLE FOR cust_subset;

这删除已注册了以前的相关联的 sysviolations 系统目录表中的行。对在目标 cust_subset 表上的随后的 DML 操作将不再导致数据库服务器将关于不符合的行的信息插入到它以前的违反表和诊断表内。

删除违反表和诊断表的示例

在您在前面的示例中执行 STOP VIOLATIONS TABLE 语句之后,cust_subset_vio 和 cust_subset_dia 表继续存在,但不再与 cust_subset 表相关联。相反现在它们有常规的数据库表的状态。要删除这两个表,请输入下列语句:

DROP TABLE cust_subset_vio;

DROP TABLE cust_subset_dia;

如果您先前已经发出了的不带有 RESTRICT 关键字的 DROP TABLE 语句成功地删除 cust_subset 表,则上面的语句可能并不必要,因为以级联模式删除目标表会隐式地删除任何相关联的违反表和诊断表。

停止违反表所需要的权限

要为给定的目标表停止违反表或诊断表,您必须满足下列要求之一:

  1. 您在该数据库上必须有 DBA 权限。
  2. 您必须是目标表的所有者,且在数据库上有 Resource 权限。
  3. 您在目标表上必须有 Alter 权限,且在数据库上有 Resource 权限。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值