Добавьте столбец в существующую таблицу и сделайте его первичным ключом mysql - PullRequest
0 голосов
/ 18 марта 2020

Есть ли способ добавить столбец в существующую таблицу (с данными, заполненными) в mysql и сделать его первичным ключом?

Проблема, с которой я сталкиваюсь, заключается в том, что система теперь генерирует GUID (уникальный идентификатор) для каждой записи, и в идеале это должен быть первичный ключ в таблице. Однако в предыдущих записях этот GUID не будет заполнен, а в новых записях этот GUID будет заполнен. Поэтому существующие строки в таблице не позволят мне сделать этот столбец GUID первичным ключом.

1 Ответ

0 голосов
/ 18 марта 2020

Сначала вам нужно удалить первичный ключ из ключа колонки:

ALTER TABLE table MODIFY UIDD INT NOT NULL;
ALTER TABLE table DROP PRIMARY KEY;

После этого вы можете добавить новый столбец:

ALTER TABLE table ADD pk_column INT NOT NULL

Добавьте новые идентификаторы в новый столбец:

После этого добавьте к нему первичный ключ:

ALTER TABLE table
  ADD PRIMARY KEY (pk_column) 

Вы можете установить для столбца старого первичного ключа уникальный индекс, чтобы запросы по-прежнему выполнялись быстро, и у вас есть уникальное ограничение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...