Wiem, jak zrobić klucz podstawowy w tabeli, ale jak zrobić, aby istniejący indeks był kluczem podstawowym? Próbuję skopiować istniejącą tabelę z jednej bazy danych do drugiej. Kiedy pokazuję tabelę, indeks na dole ma następującą postać:
"my_index" PRIMARY KEY, btree (column1, column2)
Utworzyłem indeks za pomocą:
CREATE INDEX my_index ON my_table (column1, column2)
Ale nie wiem, jak zrobić z tego klucz podstawowy ...
AKTUALIZACJA: Wersja mojego serwera to 8.3.3
postgresql
index
primary-key
WildBill
źródło
źródło
Odpowiedzi:
Użyłbyś ALTER TABLE, aby dodać ograniczenie klucza podstawowego . W Postgres możesz „promować” indeks za pomocą formularza „
ALTER TABLE .. ADD table_constraint_using_index
”Uwaga: indeks musi być oczywiście unikalny dla klucza podstawowego
źródło
USING INDEX
jest dostępny od 9.1. Sądzę więc, że nie korzystasz z bieżącej wersjiNie sądzę, aby można było przekonwertować indeks na klucz podstawowy w tej wersji postgresql.
Po prostu usunęłbym istniejący indeks i utworzyłem klucz podstawowy za pomocą podanych kolumn:
Pracował w 7.4 i 8.4
źródło