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