Добавление последовательности в существующую таблицу

Задача
Вы забыли включить столбец AUTO_INCREMENT в таблицу при создании. Теперь уже поздно?

Решение
Нет, просто добавьте его с помощью предложения ALTER TABLE. MySQL автоматически создаст столбец и пронумерует строки.

Обсуждение
Чтобы добавить последовательность в таблицу, где ее раньше не было, выполните предложение ALTER TABLE для создания столбца AUTO_INCREMENT. Предположим, что у вас есть таблица t, включающая столбцы name и age и не содержащая столбца последовательности:

+----------+------+
| name | age |
+----------+------+
| boris | 47 |
| clarence | 62 |
| abner | 53 |
+----------+------+

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

mysql> ALTER TABLE t
-> ADD id INT NOT NULL AUTO_INCREMENT,
-> ADD PRIMARY KEY (id);
mysql> SELECT * FROM t ORDER BY id;


+----------+------+--+
| name | age | id |
+----------+------+--+
| boris | 47 | 1 |
| clarence | 62 | 2 |
| abner | 53 | 3 |
+----------+-----+--+

MySQL автоматически пронумерует строки, вам не нужно присваивать значения самостоятельно – очень удобно.

По умолчанию ALTER TABLE добавляет новые столбцы в конец таблицы. Чтобы поместить столбец в какое-то определенное место, используйте ключевое слово FIRST или AFTER в конце инструкции ADD. Следующие предложения ALTER TABLE аналогичны приведенному выше, но помещают столбец id первым в таблице или после столбца name соответственно:

ALTER TABLE t
ADD id INT NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (id);
ALTER TABLE t
ADD id INT NOT NULL AUTO_INCREMENT AFTER name,
ADD PRIMARY KEY (id);


В таблицах MyISAM можно указать начальное значение для нового столбца последовательности, добавив инструкцию AUTO_INCREMENT = n в предложение ALTER TABLE:

mysql> ALTER TABLE t
-> ADD id INT NOT NULL AUTO_INCREMENT FIRST,
-> ADD PRIMARY KEY (id),
-> AUTO_INCREMENT = 100;
mysql> SELECT * FROM t ORDER BY id;


+-----+----------+-----+
| id | name | age |
+-----+----------+-----+
| 100 | boris | 47 |
| 101 | clarence | 62 |
| 102 | abner | 53 |
+-----+----------+-----+
Теги:
ORDER BY
Добавлено: 23 Июля 2018 17:46:54 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...