Измените столбец MySQL на AUTO_INCREMENT. - PullRequest
180 голосов
/ 30 января 2010

Я пытаюсь изменить таблицу, чтобы ее столбец первичного ключа AUTO_INCREMENT после факта. Я пробовал следующий SQL, но получил уведомление об ошибке синтаксиса.

ALTER TABLE document
ALTER COLUMN document_id AUTO_INCREMENT

Я что-то не так делаю или это невозможно?

+--------------------+
| VERSION()          |
+--------------------+
| 5.0.75-0ubuntu10.2 |
+--------------------+

Ответы [ 19 ]

2 голосов
/ 12 апреля 2018

Вы можете сделать это так:

 alter table [table_name] modify column [column_name] [column_type] AUTO_INCREMENT;
1 голос
/ 18 августа 2017

Синтаксис предыдущей таблицы:

CREATE TABLE apim_log_request (TransactionId varchar(50) DEFAULT NULL);

Чтобы изменить TransactionId на автоприращение, используйте этот запрос

ALTER TABLE apim_log_request MODIFY COLUMN TransactionId INT auto_increment;
1 голос
/ 24 февраля 2017
alter table tbl_user MODIFY COLUMN id int(10) auto_increment;
1 голос
/ 16 июля 2016

Чтобы изменить столбец в MySQL, мы используем alter и модифицируем ключевые слова. Предположим, мы создали таблицу вроде:

create table emp(
    id varchar(20),
    ename varchar(20),
    salary float
);

Теперь мы хотим изменить тип идентификатора столбца на целое с автоматическим приращением. Вы можете сделать это с помощью команды вроде:

alter table emp modify column id int(10) auto_increment;
1 голос
/ 09 июля 2018

Так же, как это:

alter table document modify column id int(11) auto_increment;

0 голосов
/ 13 марта 2019

ALTER TABLE table_name MODIFY COLUMN id тип данных auto_increment;

0 голосов
/ 21 августа 2018

Установка столбца в качестве первичного ключа и auto_increment одновременно:

  mysql> ALTER TABLE persons MODIFY COLUMN personID INT auto_increment PRIMARY KEY;
    Query OK, 10 rows affected (0.77 sec)
    Records: 10  Duplicates: 0  Warnings: 0

    mysql>
0 голосов
/ 19 июня 2017

Используйте следующие запросы:

ALTER TABLE YourTable DROP COLUMN IDCol

ALTER TABLE YourTable ADD IDCol INT IDENTITY(1,1)
0 голосов
/ 08 декабря 2017

Поскольку вы снова переопределяете столбец, вам необходимо снова указать тип данных и добавить к нему auto_increment, поскольку он является частью типа данных.

ALTER TABLE `document` MODIFY COLUMN `document_id` INT AUTO_INCREMENT;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...