SQL Anywhere 新手
表可以有多种行类型。如何根据行类型列的值将某些列的 CHECK 约束设置为不为空?
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 (...)
);