Saya tahu cara membuat kunci utama di dalam tabel, tetapi bagaimana cara membuat indeks yang ada menjadi kunci utama? Saya mencoba untuk menyalin tabel yang ada dari satu database ke yang lain. Ketika saya menunjukkan tabel, indeks di bagian bawah adalah dalam formulir ini:
"my_index" PRIMARY KEY, btree (column1, column2)
Saya telah membuat indeks dengan:
CREATE INDEX my_index ON my_table (column1, column2)
Tapi saya tidak tahu bagaimana membuatnya menjadi kunci utama ...
UPDATE: Versi server saya adalah 8.3.3
postgresql
index
primary-key
WildBill
sumber
sumber
Jawaban:
Anda akan menggunakan ALTER TABLE untuk menambahkan batasan kunci utama . Di Postgres Anda dapat "mempromosikan" suatu indeks menggunakan
ALTER TABLE .. ADD table_constraint_using_index
formulir " "Catatan, indeks harus unik tentu saja untuk kunci utama
sumber
USING INDEX
tersedia sejak 9.1. Jadi saya kira Anda tidak menjalankan versi saat iniSaya rasa tidak mungkin mengubah indeks menjadi kunci utama dalam versi postgresql itu.
Saya hanya akan menjatuhkan indeks yang ada dan membuat kunci utama menggunakan kolom yang Anda tentukan .:
Bekerja di 7.4 dan 8.4
sumber