Je souhaite ajouter des index à certaines des colonnes d'une table lors de la création. Existe-t-il un moyen de les ajouter à la définition CREATE TABLE ou dois-je les ajouter par la suite avec une autre requête?
CREATE INDEX reply_user_id ON reply USING btree (user_id);
postgresql
database-schema
database-indexes
Xeoncross
la source
la source
Non.
Cependant, vous pouvez créer des
unique
index lors de la création, mais c'est parce qu'ils sont classés comme contraintes . Vous ne pouvez pas créer un index "général".la source
Vous recherchez une définition d'index en ligne , qui n'est pas disponible pour PostgreSQL jusqu'à la version actuelle 12. Sauf la contrainte UNIQUE / PRIMARY KEY, qui crée un index sous-jacent pour vous.
CRÉER UNE TABLE
Exemple de syntaxe de définition de colonne en ligne (ici SQL Server):
démo db <> fiddle
La justification de leur introduction est assez intéressante. Que sont les index en ligne? par Phil Factor
la source
b VARCHAR(10) NOT NULL INDEX idx_tab_b gin (b gin_trgm_ops)
.. comment ajouter plus de paramètres sans répéter le nom de la colonne?CREATE INDEX idxName ON tableName USING MethodName (fieldName optionName);
en syntaxe de définition d'index en ligne . PS: cette question concerne PostgreSQL et non Microsoft-SQL-Server (voir les balises).