Я пытаюсь изменить таблицу, чтобы сделать ее столбец первичного ключа AUTO_INCREMENT
после факта. Я пробовал следующий SQL, но получил уведомление об ошибке синтаксиса.
ALTER TABLE document
ALTER COLUMN document_id AUTO_INCREMENT
Я что-то не так делаю или это невозможно?
+ -------------------- + | ВЕРСИЯ () | + -------------------- + | 5.0.75-0ubuntu10.2 | + -------------------- +
sql
mysql
alter-table
Пересекать
источник
источник
Роман прав, но обратите внимание, что столбец auto_increment должен быть частью PRIMARY KEY или UNIQUE KEY (и почти в 100% случаев это должен быть единственный столбец, который составляет PRIMARY KEY):
источник
В моем случае это работало только когда я ставил
not null
. Я думаю, что это ограничение.источник
SQL для этого будет:
Есть несколько причин, по которым ваш SQL может не работать. Во-первых, вы должны заново указать тип данных (
INT
в этом случае). Кроме того, столбец, который вы пытаетесь изменить, должен быть проиндексирован (он не должен быть первичным ключом, но обычно это именно то, что вам нужно). Кроме того,AUTO_INCREMENT
для каждой таблицы может быть только один столбец. Таким образом, вы можете запустить следующий SQL (если ваш столбец не проиндексирован):Вы можете найти больше информации в документации MySQL: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html для синтаксиса изменения столбца и http://dev.mysql.com/doc /refman/5.1/en/create-table.html для получения дополнительной информации об указании столбцов.
источник
Необходимо указать тип столбца перед
auto_increment
директивой, то естьALTER TABLE document MODIFY COLUMN document_id INT AUTO_INCREMENT
.источник
MODIFY COLUMN
AUTO_INCREMENT
является частью типа данных столбца, вы должны снова определить полный тип данных для столбца:(
int
взятый в качестве примера, вы должны установить тип столбца)источник
Вы можете сделать это так:
источник
AUTO_INCREMENT
является частью типа данных столбца, вы должны снова определить полный тип данных для столбца:(int, взятый в качестве примера, вы должны установить тип столбца)
источник
Вы можете использовать следующий запрос, чтобы document_id автоматически увеличивался
Желательно также сделать первичный ключ document_id
источник
Ниже заявление работает. Обратите внимание, что вам нужно снова упомянуть тип данных для имени столбца (повторно объявите тип данных, в котором столбец был раньше).
источник
Если ничего из вышеперечисленного не работает, попробуйте это. Это то, что я сделал в MYSQL, и да, вам нужно написать имя столбца (document_id) дважды.
источник
Чтобы изменить столбец в MySQL, мы используем ключевые слова alter и modify. Предположим, мы создали таблицу вроде:
Теперь мы хотим изменить тип идентификатора столбца на целое с автоматическим приращением. Вы можете сделать это с помощью команды:
источник
Синтаксис предыдущей таблицы:
Для изменения TransactionId на автоинкремент используйте этот запрос
источник
источник
Именно так:
alter table document modify column id int(11) auto_increment;
источник
Поскольку вы снова переопределяете столбец, вам нужно снова указать тип данных и добавить к нему auto_increment, поскольку он является частью типа данных.
источник
Установка столбца в качестве первичного ключа и auto_increment одновременно:
источник
ALTER TABLE table_name MODIFY COLUMN id тип данных auto_increment;
источник
Используйте следующие запросы:
источник