CREATE DOMAIN SQL - Language Statements CREATE DOMAIN define a new domain 2002-02-24 CREATE DOMAIN domainname data_type [ DEFAULT default_expr ] [ column_constraint [, ... ] ] [ CONSTRAINT constraint_name ] { NOT NULL | NULL } 2002-02-24 Parameters domainname The name of a domain to be created. data_type The data type of the domain. This may include array specifiers. Refer to the User's Guide for further information about data types and arrays. DEFAULT default_expr The DEFAULT clause assigns a default data value for the column whose column definition it appears within. The value is any variable-free expression (subselects and cross-references to other columns in the current table are not allowed). The data type of the default expression must match the data type of the domain. The default expression will be used in any insert operation that does not specify a value for the domain. If there is no default for a domain, then the default is NULL. The default of a column will be tested before that of the domain. CONSTRAINT constraint_name An optional name for a domain. If not specified, the system generates a name. NOT NULL The column is not allowed to contain NULL values. This is equivalent to the column constraint CHECK (column NOT NULL). NULL The column is allowed to contain NULL values. This is the default. This clause is only available for compatibility with non-standard SQL databases. Its use is discouraged in new applications. 2002-02-24 Outputs CREATE DOMAIN Message returned if the domain is successfully created. 2002-02-24 Description CREATE DOMAIN allows the user to register a new user data domain with PostgreSQL for use in the current data base. The user who defines a domain becomes its owner. domainname is the name of the new type and must be unique within the types and domains defined for this database. Domains are useful for abstracting common fields between tables into a single location for maintenance. An email address column may be used in several tables, all with the same properties. Define a domain and use that rather than setting up each tables constraints individually. Examples This example creates the country_code data type and then uses the type in a table definition: CREATE DOMAIN country_code char(2) NOT NULL; CREATE TABLE countrylist (id INT4, country country_code); Compatibility This CREATE DOMAIN command is a PostgreSQL extension. CHECK and FOREIGN KEY constraints are currently unsupported. See Also PostgreSQL Programmer's Guide