CREATE COLLATION
7
SQL - Language Statements
CREATE COLLATION
define a new collation
CREATE COLLATION
CREATE COLLATION name (
[ LOCALE = locale, ]
[ LC_COLLATE = lc_collate, ]
[ LC_CTYPE = lc_ctype, ]
)
CREATE COLLATION name FROM existing_collation
Description
CREATE COLLATION defines a new collation using
the specified operating system locales or from an existing collation.
To be able to create a collation, you must
have CREATE privilege on the destination schema.
Parameters
name
The name of the collation. The collation name can be
schema-qualified. If it is not, the collation is defined in the
current schema. The collation name must be unique within a
schema. (The system catalogs can contain collations with the
same name for other encodings, but these are not usable if the
database encoding does not match.)
existing_collation
The name of an existing collation to copy. The new collation
will have the same properties as the existing one, but they
will become independent objects.
locale
This is a shortcut for setting LC_COLLATE
and LC_CTYPE at once. If you specify this,
you cannot specify either of the other parameters.
lc_collate
Use the specified operating system locale for
the LC_COLLATE locale category. The locale
must be applicable to the current database encoding.
(See for the precise
rules.)
lc_ctype
Use the specified operating system locale for
the LC_CTYPE locale category. The locale
must be applicable to the current database encoding.
(See for the precise
rules.)
Notes
Use DROP COLLATION to remove user-defined collations.
See for more information about collation
support in PostgreSQL.
Examples
To create a collation from the locale fr_FR.utf8
(assuming the current database encoding is UTF8):
CREATE COLLATION french (LOCALE = 'fr_FR.utf8');
To create a collation from an existing collation:
CREATE COLLATION german FROM "de_DE";
This can be convenient to be able to use operating-system
independent collation names in applications.
Compatibility
There is a CREATE COLLATION statement in the SQL
standard, but it is limited to copying an existing collation. The
syntax to create a new collation is
a PostgreSQL extension.
See Also