• 南大通用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 权限。

  • 相关阅读:
    equals of Object class
    人工智能数学基础--概率与统计11:离散随机变量的超几何分布和负二项分布
    LevelSequence源码分析
    上周热点回顾(1.1-1.7)
    盒子模型(CSS重点)
    关于使用KEIL建立STM32项目(附带建立好的工程以及注意事项)
    Spark Standalone HA基本原理及部署
    Linux | Linux权限详解
    基于Android的电子书阅读器的设计与实现
    shouldComponentUpdate 是做什么的?
  • 原文地址:https://blog.csdn.net/m0_67317773/article/details/127446062