table of contents
- buster 11.9-0+deb10u1
CREATE COLLATION(7) | PostgreSQL 11.9 Documentation | CREATE COLLATION(7) |
NAME¶
CREATE_COLLATION - define a new collationSYNOPSIS¶
CREATE COLLATION [ IF NOT EXISTS ] name ( [ LOCALE = locale, ] [ LC_COLLATE = lc_collate, ] [ LC_CTYPE = lc_ctype, ] [ PROVIDER = provider, ] [ VERSION = version ] ) CREATE COLLATION [ IF NOT EXISTS ] name FROM existing_collation
DESCRIPTION¶
CREATE COLLATION defines a new collation using the specified operating system locale settings, or by copying an existing collation.To be able to create a collation, you must have CREATE privilege on the destination schema.
PARAMETERS¶
IF NOT EXISTSname
locale
lc_collate
lc_ctype
provider
version
See also ALTER COLLATION (ALTER_COLLATION(7)) for how to handle collation version mismatches.
existing_collation
NOTES¶
Use DROP COLLATION to remove user-defined collations.See Section 23.2.2.3 for more information on how to create collations.
When using the libc collation provider, the locale must be applicable to the current database encoding. See CREATE DATABASE (CREATE_DATABASE(7)) for the precise rules.
EXAMPLES¶
To create a collation from the operating system locale fr_FR.utf8 (assuming the current database encoding is UTF8):CREATE COLLATION french (locale = 'fr_FR.utf8');
To create a collation using the ICU provider using German phone book sort order:
CREATE COLLATION german_phonebook (provider = icu, locale = 'de-u-co-phonebk');
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¶
ALTER COLLATION (ALTER_COLLATION(7)), DROP COLLATION (DROP_COLLATION(7))2020 | PostgreSQL 11.9 |