create User Defined Type with CHECK
-
05-10-2020 - |
Question
In PostgreSQL one can create a User Defined Type with an implicit CHECK by doing the following:
CREATE DOMAIN OrdinalT AS INTEGER CHECK (value >= 0);
In Sybase ASE 15.7 I've figured that the following is almost equivalent (except for the CHECK):
sp_addtype OrdinalT, "INTEGER";
How do I make a CHECK part of the user-defined type definition in Sybase?
Solution
You cannot make a check condition a part of the type definition syntactically, but you can create a rule:
CREATE RULE OrdinalTRule AS @value >= 0
and bind it to the data type:
sp_bindrule OrdinalTRule, OrdinalT
In order to modify the rule later, you will have to drop and recreate it. Before being dropped, the rule must be unbound:
sp_unbindrule OrdinalT
Note that the argument in the last statement is not the rule itself but the type to which the rule is bound.
Licensed under: CC-BY-SA with attribution
Not affiliated with dba.stackexchange