MySQL сложный вопрос по auto_increment - PullRequest
1 голос
/ 28 июня 2011

Я не могу понять команду MYSQL или набор команд, которые позволят мне создать поле 'id', добавить значения auto_increment и затем установить его в качестве первичного ключа.

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

Есть ли способсделать это с помощью синтаксиса SQL или мне нужно написать скрипт?

Ответы [ 3 ]

3 голосов
/ 28 июня 2011

Просто понял, на случай, если кому-то еще понадобится это в будущем:

alter table test add column id int(9) unsigned auto_increment PRIMARY KEY;
3 голосов
/ 28 июня 2011

Это должно быть относительно просто:

ALTER TABLE `myTable` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
1 голос
/ 28 июня 2011

Может быть, вы можете создать новую таблицу следующим образом:

CREATE TABLE new_table (id INT NOT NULL AUTO_INCREMENT,
   PRIMARY KEY (id), KEY(b))
ENGINE=InnoDB SELECT b,c FROM original;
...