Ich möchte bei der Erstellung einigen Spalten in einer Tabelle Indizes hinzufügen. Gibt es eine Möglichkeit, sie zur Definition von CREATE TABLE hinzuzufügen, oder muss ich sie anschließend mit einer anderen Abfrage hinzufügen?
CREATE INDEX reply_user_id ON reply USING btree (user_id);
postgresql
database-schema
database-indexes
Xeoncross
quelle
quelle
Nein.
Sie können zwar
unique
Indizes in create erstellen, dies liegt jedoch daran, dass sie als Einschränkungen klassifiziert sind . Sie können keinen "allgemeinen" Index erstellen.quelle
Sie suchen nach einer Inline-Indexdefinition , die für PostgreSQL bis zur aktuellen Version 12 nicht verfügbar ist. Mit Ausnahme der Einschränkung UNIQUE / PRIMARY KEY wird ein zugrunde liegender Index für Sie erstellt.
TABELLE ERSTELLEN
Die Beispielsyntax der Inline-Spaltendefinition (hier SQL Server):
db <> Geigen-Demo
Die Gründe für ihre Einführung sind sehr interessant. Was sind Inline-Indizes? von Phil Factor
quelle
b VARCHAR(10) NOT NULL INDEX idx_tab_b gin (b gin_trgm_ops)
wie Sie weitere Parameter hinzufügen können, ohne den Spaltennamen zu wiederholen?CREATE INDEX idxName ON tableName USING MethodName (fieldName optionName);
in die Syntax der Inline- Indexdefinition umzuwandeln . PS: Diese Frage bezieht sich auf PostgreSQL, nicht auf Microsoft-SQL-Server (siehe Tags).