CREATE DOMAIN
Examples
-
Creating a domain that can take values greater than 1,000, with a default value of 10,000.
CREATE DOMAIN CUSTNO AS INTEGER DEFAULT 10000 CHECK (VALUE > 1000);
-
Creating a domain that can take the values 'Yes' and 'No' in the default character set specified during the creation of the database.
CREATE DOMAIN D_BOOLEAN AS CHAR(3) CHECK (VALUE IN ('Yes', 'No'));
-
Creating a domain with the
UTF8
character set and theUNICODE_CI_AI
collation.CREATE DOMAIN FIRSTNAME AS VARCHAR(30) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI;
-
Creating a domain of the
DATE
type that will not acceptNULL
and uses the current date as the default value.CREATE DOMAIN D_DATE AS DATE DEFAULT CURRENT_DATE NOT NULL;
-
Creating a domain defined as an array of 2 elements of the
NUMERIC(18, 3)
type.The starting array index is 1.CREATE DOMAIN D_POINT AS NUMERIC(18, 3) [2];
NoteDomains defined over an array type may be used only to define table columns.You cannot use array domains to define local variables in PSQL modules.
-
Creating a domain whose elements can be only country codes defined in the
COUNTRY
table.CREATE DOMAIN D_COUNTRYCODE AS CHAR(3) CHECK (EXISTS(SELECT * FROM COUNTRY WHERE COUNTRYCODE = VALUE));
NoteThe example is given only to show the possibility of using predicates with queries in the domain test condition.It is not recommended to create this style of domain in practice unless the lookup table contains data that are never deleted.