0

SQL Anywhere 新手

表可以有多种行类型。如何根据行类型列的值将某些列的 CHECK 约束设置为不为空?

4

1 回答 1

0

SQL Anywhere 是强类型的,我不确定在架构中使用无类型列通常是个好主意。

如果必须,您可以创建一个具有数据类型的伪无类型列varchar,并添加一个将测试字符串输入的约束,如下所示:

ALTER TABLE "DBA"."myTable" ADD "myColumn " VARCHAR(100) NULL;

ALTER TABLE "DBA"."myTable" ADD CONSTRAINT "myConstraint" 

check(
        ( ISNUMERIC( myColumn ) AND myColumn is not null ) 
     OR ( ISDATE( myColumn ) AND myColumn is not null )
     OR (...)

     );

顺便说一句,您可能希望在http://sqla.stackexchange.com/上提问。

于 2011-03-08T19:36:26.427 回答