Section courante

A propos

Section administrative du site

CREATE INDEX

Crée un index
PostgreSQL

Syntaxe

CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON table_name [ USING method ] ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] ) [ WITH ( storage_parameter [= value] [, ... ] ) ] [ TABLESPACE tablespace_name ] [ WHERE predicate ]

Paramètres

Nom Description
UNIQUE Ce paramètre permet d'indiquer que le système recherche les valeurs en double dans la table lors de la création de l'index (si des données existent déjà) et chaque fois que des données sont ajoutées. Les tentatives d'insertion ou de mise à jour de données entraînant des entrées en double généreront une erreur.
CONCURRENTLY Ce paramètre permet d'indiquer que PostgreSQL construira l'index sans prendre de verrous empêchant les insertions, mises à jour ou suppressions simultanées sur la table ; alors qu'une construction d'index standard verrouille les écritures (mais pas les lectures) sur la table jusqu'à ce qu'elle soit terminée. Il y a plusieurs mises en garde à prendre en compte lors de l'utilisation de cette option. Pour les tables temporaires, CREATE INDEX est toujours non simultané, car aucune autre session ne peut y accéder, et la création d'index non simultanés est moins chère.
IF NOT EXISTS Ce paramètre permet d'indiquer s'il n'existe pas. Ne renvoie pas d'erreur si une relation du même nom existe déjà. Un avis est émis dans ce cas. Notez qu'il n'y a aucune garantie que l'index existant ressemble à celui qui aurait été créé. Le nom de l'index est requis lorsque IF NOT EXISTS est spécifié.
name Ce paramètre permet d'indiquer le nom de l'index à créer. Aucun nom de schéma ne peut être inclus ici ; l'index est toujours créé dans le même schéma que sa table parent. Si le nom est omis, PostgreSQL choisit un nom approprié basé sur le nom de la table parent et le(s) nom(s) de colonne indexée.
table_name Ce paramètre permet d'indiquer le nom (éventuellement qualifié par le schéma) de la table à indexer.
method Ce paramètre permet d'indiquer le nom de la méthode d'indexation à utiliser. Les choix sont btree, hash, gist, spgist, gin et brin. La méthode par défaut est btree.
column_name Ce paramètre permet d'indiquer le nom d'une colonne de la table.
expression Ce paramètre permet d'indiquer une expression basée sur une ou plusieurs colonnes de la table. L'expression doit généralement être écrite avec des parenthèses environnantes, comme indiqué dans la syntaxe. Cependant, les parenthèses peuvent être omises si l'expression a la forme d'un appel de fonction.
collation Ce paramètre permet d'indiquer le nom du classement à utiliser pour l'index. Par défaut, l'index utilise le classement déclaré pour la colonne à indexer ou le classement résultant de l'expression à indexer. Les index avec des classements autres que ceux par défaut peuvent être utiles pour les requêtes impliquant des expressions utilisant des classements autres que ceux par défaut.
opclass Ce paramètre permet d'indiquer le nom d'une classe d'opérateurs.
ASC Ce paramètre permet d'indiquer l'ordre de tri croissant (étant la valeur par défaut).
DESC Ce paramètre permet d'indiquer l'ordre de tri décroissant.
NULLS FIRST Ce paramètre permet d'indiquer que les valeurs NULL sont triées avant les valeurs non NULL. Il s'agit de la valeur par défaut lorsque DESC est spécifié.
NULLS LAST Ce paramètre permet d'indiquer que les valeurs NULL sont triées après les valeurs non NULL. Il s'agit de la valeur par défaut lorsque DESC n'est pas spécifié.
storage_parameter Ce paramètre permet d'indiquer le nom d'un paramètre d'entreposage spécifique à la méthode d'indexation.
tablespace_name Ce paramètre permet d'indiquer l'espace table dans lequel créer l'index. S'il n'est pas spécifié, default_tablespace est consulté, ou temp_tablespaces pour les index sur les tables temporaires.
predicate Ce paramètre permet d'indiquer l'expression de contrainte pour un index partiel.

Description

Cette instruction permet de définir un nouvel index.



Dernière mise à jour : Jeudi, le 14 Octobre 2021