HiveBrain v1.2.0
Get Started
← Back to all entries
snippetMinor

create User Defined Type with CHECK

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
createwithusertypecheckdefined

Problem

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.

Code Snippets

CREATE RULE OrdinalTRule AS @value >= 0
sp_bindrule OrdinalTRule, OrdinalT
sp_unbindrule OrdinalT

Context

StackExchange Database Administrators Q#161765, answer score: 2

Revisions (0)

No revisions yet.