2012-07-05 261 views
0

在postgres中,如何將索引添加到現有表中?在postgres中,如何向現有表添加索引?

我嘗試以下,但它不工作:

CREATE INDEX my_index ON my_table USING btree(a_column); 

,然後這樣的:

CREATE INDEX my_index ON my_table USING btree(a_column); 

但無論是作品。

我正在使用ant進行數據庫遷移。當我做ant db-migrate-apply-postgresql我不斷收到錯誤

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

你有*的語法應該*工作(兩個相同的例子?)。否則,您需要包含**錯誤消息**以使其成爲一個有用的問題。 [或參考手冊](http://www.postgresql.org/docs/9.2/interactive/sql-createindex.html) – 2012-07-05 22:26:29

+0

我編輯添加上下文幷包含錯誤消息。 – user1467855 2012-07-05 22:39:10

+1

錯誤似乎很清楚。嘗試使用其他名稱的索引? – madth3 2012-07-05 22:41:23

回答

10

那麼,此錯誤消息:

ERROR: relation "my_index" already exists

是很清楚的,是不是。

您正嘗試使用現有索引或表的名稱創建索引。 您需要使用不同的名稱。

+0

但事實上並非如此。我沒有這樣的表格或索引。 – user1467855 2012-07-05 22:47:26

+2

@ user1467855:顯然你有。 – 2012-07-05 22:49:39

+0

實際上我試圖給三個不同的表添加索引。對於每個表,索引將具有相同的名稱「my_index」。但螞蟻沒有添加任何表的索引。就像三個不同的表可以有名爲id的字段一樣,這應該不成問題。 – user1467855 2012-07-05 22:51:04