2012-07-05 2 views
0

Dans postgres, comment ajouter un index à une table existante?Dans postgres, comment ajouter un index à une table existante?

J'ai essayé suivante, mais il ne fonctionne pas:

CREATE INDEX my_index ON my_table USING btree(a_column); 

puis ceci:

CREATE INDEX my_index ON my_table USING btree(a_column); 

Mais ni travaux. J'utilise ant pour effectuer une migration db. Et quand je fais ant db-migrate-apply-postgresql je continue à obtenir l'erreur

[echo] ERROR: relation "my_index" already exists 
+3

La syntaxe que vous avez ici * devrait * fonctionner (Deux exemples identiques?). Sinon, vous devez inclure le ** message d'erreur ** pour en faire une question utile. [Ou reportez-vous au manuel] (http://www.postgresql.org/docs/9.2/interactive/sql-createindex.html) –

+0

Je modifie pour ajouter un contexte et inclure un message d'erreur. – user1467855

+1

L'erreur semble claire. Essayé d'utiliser un autre nom pour l'index? – madth3

Répondre

10

Eh bien, ce message d'erreur:

ERROR: relation "my_index" already exists

est assez clair, non.

Vous essayez de créer un index avec le nom d'un index ou d'une table existante. Vous devez utiliser un nom différent.

+0

Mais en réalité ce n'est pas vrai. Je n'ai pas de table ou d'index. – user1467855

+2

@ user1467855: apparemment vous avez. –

+0

en fait j'essaye d'ajouter des index à trois tables différentes. Pour chaque table, l'index aurait le même nom, "my_index". Mais Ant n'ajoute pas d'index à l'une des tables. Tout comme trois tables différentes peuvent avoir des champs nommés 'id', cela ne devrait pas poser de problème. – user1467855

Questions connexes