Я знаю, как сделать первичный ключ в таблице, но как сделать существующий индекс первичным ключом? Я пытаюсь скопировать существующую таблицу из одной базы данных в другую. Когда я показываю таблицу, индекс внизу имеет вид:
"my_index" PRIMARY KEY, btree (column1, column2)
Я создал индекс с:
CREATE INDEX my_index ON my_table (column1, column2)
Но я не знаю, как сделать его первичным ключом ...
ОБНОВЛЕНИЕ: версия моего сервера 8.3.3
postgresql
index
primary-key
WildBill
источник
источник
Ответы:
Вы бы использовали ALTER TABLE, чтобы добавить ограничение первичного ключа . В Postgres вы можете «продвигать» индекс, используя
ALTER TABLE .. ADD table_constraint_using_index
форму « »Обратите внимание, индекс должен быть уникальным, конечно, для первичного ключа
источник
USING INDEX
доступно с 9.1. Так что я думаю, что вы не используете текущую версиюЯ не думаю, что возможно преобразовать индекс в первичный ключ в этой версии postgresql.
Я бы просто отбросил существующий индекс и создал бы первичный ключ, используя указанные вами столбцы.
Работал в 7.4 и 8.4
источник