

CREATE COLLATION — définit une nouvelle collation
CREATE COLLATION [ IF NOT EXISTS ]nom( [ LOCALE =locale, ] [ LC_COLLATE =lc_collate, ] [ LC_CTYPE =lc_ctype, ] [ PROVIDER =provider, ] [ VERSION =version] ) CREATE COLLATION [ IF NOT EXISTS ]nomFROMcollation_existante
   CREATE COLLATION définit une nouvelle collation utilisant
   la configuration de locale du système d'exploitation spécifiée
   ou par copie d'une collation existante.
  
   Pour pouvoir créer une collation, vous devez posséder
   le privilège CREATE sur le schéma de destination.
  
IF NOT EXISTSNe renvoie pas d'erreur si une collation du même nom existe déjà. Une note est affichée dans ce cas. Veuillez noter qu'il n'y a aucune garantie que la collation existante ait quelque rapport que ce soit avec la collation qui aurait été créée.
nomLe nom de la collation. Le nom de la collation peut être qualifié par le schéma. Si ce n'est pas le cas, la collation est définie dans le schéma courant. Le nom de la collation doit être unique au sein de ce schéma. (Le catalogue système peut contenir des collations de même nom pour d'autres encodages, mais ces dernières sont ignorées si l'encodage de la base de données ne correspond pas).
locale
      Ceci est un raccourci pour positionner d'un même coup
      LC_COLLATE
      et LC_CTYPE. Si vous spécifiez cela, vous
      ne pouvez plus spécifier aucun de ces deux paramètres-ci.
     
lc_collate
      Utilise la locale système spécifiée comme catégorie de locale de
      LC_COLLATE.
     
lc_ctype
      Utilise la locale système spécifiée comme catégorie de locale de
      LC_CTYPE.
     
provider
      Spécifie le fournisseur à utiliser pour les services de locale associé
      à cette collation.  Les valeurs possibles sont :
      icu, , libc.
      libc est la valeur par défaut.
      Le choix disponible dépend du système d'exploitation ainsi que des
      options de compilation.
     
version
      Spécifie le texte de la version à stocker avec la collation.
      Normalement, ce paramètre devrait être omis, ce qui fera que la version
      sera calculée en fonction de la version courante de la collation telle
      que fournie par le système d'exploitation.  Cette option est prévue pour
      être utilisée par pg_upgrade pour copier la version
      depuis une installation existante.
     
Voir aussi ALTER COLLATION pour savoir comment gérer les incompatibilités de version de collations.
collation_existanteLe nom d'une collation existante à copier. La nouvelle collation aura les mêmes propriétés que celle copiée, mais ce sera un objet indépendant.
   Utilisez DROP COLLATION pour supprimer une collation
   définie par l'utilisateur.
  
Voir Section 23.2.2.3 pour plus d'informations sur la création de collations.
   Lors de l'utilisation du fournisseur de collation libc,
   la locale doit être applicable à l'encodage actuel de la base de données.
   Voir CREATE DATABASE pour les règles précises.
  
   Créer une collation à partir de la locale système
   fr_FR.utf8
   (en supposant que l'encodage de la base courante est UTF8):
   
CREATE COLLATION french (locale = 'fr_FR.utf8');
Pour créer une collation en utilisant le fournisseur ICU utilisant l'ordre de tri du carnet de téléphone allemand :
CREATE COLLATION german_phonebook (provider = icu, locale = 'de-u-co-phonebk');
Créer une collation à partir d'une collation existante :
CREATE COLLATION german FROM "de_DE";
Ceci peut être pratique pour pouvoir utiliser dans des applications des noms de collation indépendants du système d'exploitation.
   Dans le standard SQL se trouve un ordre CREATE COLLATION, mais
   il est limité à la copie d'une collation existante. La syntaxe de création d'une
   nouvelle collation est une extension
   PostgreSQL.