Eu sei como criar uma chave primária em uma tabela, mas como faço para tornar um índice existente uma chave primária? Estou tentando copiar uma tabela existente de um banco de dados para outro. Quando mostro a tabela, o índice na parte inferior está neste formato:
"my_index" PRIMARY KEY, btree (column1, column2)
Eu criei o índice com:
CREATE INDEX my_index ON my_table (column1, column2)
Mas eu não sei como torná-lo a chave primária ...
ATUALIZAÇÃO: A versão do meu servidor é 8.3.3
postgresql
index
primary-key
WildBill
fonte
fonte
Respostas:
Você usaria ALTER TABLE para adicionar a restrição de chave primária . No Postgres, você pode "promover" um índice usando o
ALTER TABLE .. ADD table_constraint_using_index
formulário " "Observe que o índice precisa ser exclusivo, é claro, para uma chave primária
fonte
USING INDEX
está disponível desde 9.1. Então eu acho que você não está executando a versão atualEu não acho que é possível converter um índice em uma chave primária nessa versão do postgresql.
Gostaria apenas de soltar o índice existente e criar a chave primária usando as colunas que você especificou .:
Trabalhou em 7.4 e 8.4
fonte