Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - SQL 用法 » 数据完整性 » 表与列约束

 

如何变更和删除 CHECK 约束

有几种方法可以改变表中现有的 CHECK 约束集。

  • 您可以给表或某个列添加新 CHECK 约束。

  • 通过将列的 CHECK 约束设置为 NULL,可以删除该约束。例如,以下语句将删除 Customers 表中 Phone 列的 CHECK 约束:

    ALTER TABLE Customers
    ALTER Phone CHECK NULL;
  • 您可以用与添加 CHECK 约束相同的方法来替换列的 CHECK 约束。例如,以下语句将添加或替换 Customers 表中 Phone 列的 CHECK 约束:

    ALTER TABLE Customers
    ALTER Phone
    CHECK ( Phone LIKE '___-___-____' );
  • 您可以变更在表中定义的 CHECK 约束:

    • 您可以使用带有 ADD table-constraint 子句的 ALTER TABLE 添加新的 CHECK 约束。

    • 如果已经定义了约束名,则可以变更各个约束。

    • 如果尚未定义约束名,则可以使用 ALTER TABLE DELETE CHECK 删除所有现有的 CHECK 约束(包括列 CHECK 约束和从域继承的 CHECK 约束),然后添加新的 CHECK 约束。

      使用带有 DELETE CHECK 子句的 ALTER TABLE 语句:

      ALTER TABLE table-name
      DELETE CHECK;

Sybase Central 允许您添加、变更和删除表 CHECK 约束和列 CHECK 约束。

从表中删除列并不会删除表约束中保存的与该列相关联的 CHECK 约束。如果不删除这些约束,尝试在该表中插入数据时(甚至在只查询数据时)会出现错误消息。

注意

如果返回 FALSE 值,则表 CHECK 约束失败。如果条件返回 UNKNOWN 值(此行为同返回 TRUE 值一样),则允许使用此值。

 另请参见