Who Can Create a Domain
The CREATE DOMAIN
statement can be executed by:
-
Users with the
CREATE DOMAIN
privilege
The CREATE DOMAIN
statement can be executed by:
Users with the CREATE DOMAIN
privilege
CREATE DOMAIN
ExamplesCreating 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 the UNICODE_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 accept NULL
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];
Note
|
Domains 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));
Note
|
The 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. |