In Microsoft SQL Server e MySQL, i nomi di indice devono essere univoci all'interno della tabella, ma non all'interno del database. Questo non sembra essere il caso di PostgreSQL.A quale livello i nomi degli indici di Postgres devono essere univoci?
Ecco cosa sto facendo: ho creato una copia di una tabella utilizzando CREATE TABLE new_table AS SELECT * FROM old_table
ecc. E ho bisogno di ricreare gli indici.
Esecuzione di una query come CREATE INDEX idx_column_name ON new_table USING GIST(column_name)
provoca ERROR: relation "idx_column_name" already exists
Che cosa sta succedendo qui?
I nomi sono unici all'interno dello schema. (schema: = spazio dei nomi per tabelle e vincoli (e funzioni, ecc.) (sebbene i vincoli dello schema incrociato siano consentiti)) – wildplasser
BTW: è questo il messaggio di errore effettivo? ('idx_column_name' è diverso da' idx_pickup_geom') – wildplasser
Gli indici condividono lo stesso spazio dei nomi (: = schema) con le tabelle. (indice: = tabella). Avrai bisogno di inventare un altro nome (o di ometterlo: il sistema può inventarti un nome) – wildplasser