Remover a unicidade do índice no PostgreSQL

Na minha base de dados PostgreSQL tenho um índice único criado desta forma:

CREATE UNIQUE INDEX my_index ON my_table USING btree (my_column)

Há alguma maneira de alterar o índice para remover a restrição única? Procurei por thorugh, alterei a documentação do índice, mas não parece fazer o que preciso.

Eu sei que posso remover o índice e criar outro, mas gostaria de encontrar uma maneira melhor se ele existir.

Author: vallismortis, 2013-08-29

3 answers

Você pode ser capaz de remover o único {[[0]}, e não o INDEX em si.

Verifique o seu CONSTRAINTS via select * from information_schema.table_constraints;

Então, se encontrares um, deves conseguir largá-lo como:

ALTER TABLE "my_table" DROP CONSTRAINT "unique_something"

Editar: uma edição relacionada está descrita em esta questão

 47
Author: Community, 2017-05-23 11:47:29

Assume que tens o seguinte:

Indexes:
    "feature_pkey" PRIMARY KEY, btree (id, f_id)
    "feature_unique" UNIQUE, btree (feature, f_class)
    "feature_constraint" UNIQUE CONSTRAINT, btree (feature, f_class)

Para largar a restrição única, você iria usar alterar a tabela:

ALTER TABLE feature DROP CONSTRAINT feature_constraint;

Para largar o único [índice], você usaria O índice de queda:

DROP INDEX feature_unique;
 9
Author: vallismortis, 2018-02-09 14:05:42
Acho que não é possível... mesmo no pgAdmin III UI, se você tentar editar uma restrição criada com a sua declaração, a caixa" única " está acinzentada; você não pode alterá-la através da UI. Combinado com a sua pesquisa sobre os documentos do ALTER INDEX, diria que não pode ser feito.
 4
Author: dcsohl, 2013-08-29 15:25:57