在Microsoft SQL Server和MySQL中,索引名稱需要在表內唯一,但不在數據庫內。對於PostgreSQL來說,這似乎不是這種情況。Postgres索引名稱的級別應該是什麼級別?
我在做什麼:我做了一個表使用CREATE TABLE new_table AS SELECT * FROM old_table
等副本,需要重新創建索引。
運行像CREATE INDEX idx_column_name ON new_table USING GIST(column_name)
查詢導致ERROR: relation "idx_column_name" already exists
這是怎麼回事?
名稱是該架構中是唯一的(他們的名字將與
_1
,_2
,IIRC的後綴)。 (schema:=用於表和約束的命名空間(和函數等)(雖然允許跨模式約束)) – wildplasser 2014-12-05 00:04:48BTW:這是實際的錯誤消息嗎? ('idx_column_name'與'idx_pickup_geom'不同) – wildplasser 2014-12-05 00:13:52
索引與表共享相同的命名空間(:= schema)。 (索引:=表)。你需要發明另一個名字(或者省略它:系統可以爲你創建一個名字) – wildplasser 2014-12-05 00:20:18