ALTER table-добавление автоинкремента в MySQL
Я создал таблицу в MySQL с on column itemID. После создания таблицы, теперь я хочу изменить этот столбец AUTOINCREMENT. Как это можно сделать с помощью операторов ALTER?
таблицы определения:
ALLITEMS (itemid int(10) unsigned, itemname varchar(50))
Я использую следующий код, но он бросает ошибка: неправильный синтаксис.
ALTER TABLE allitems
MODIFY itemid INT(10) UNSIGNED AUTOINCREMENT;
7 ответов:
CREATE TABLE ALLITEMS( itemid INT(10)UNSIGNED, itemname VARCHAR(50) ); ALTER TABLE ALLITEMS CHANGE itemid itemid INT(10)AUTO_INCREMENT PRIMARY KEY; DESC ALLITEMS; INSERT INTO ALLITEMS(itemname) VALUES ('Apple'), ('Orange'), ('Banana'); SELECT * FROM ALLITEMS;Я был смущен
CHANGEиMODIFYключевые слова тоже:ALTER TABLE ALLITEMS CHANGE itemid itemid INT(10)AUTO_INCREMENT PRIMARY KEY; ALTER TABLE ALLITEMS MODIFY itemid INT(5);пока мы там, также обратите внимание, что
AUTO_INCREMENTможно также начать с предопределенного числа:ALTER TABLE tbl AUTO_INCREMENT = 100;
синтаксис:
ALTER TABLE `table1` CHANGE `itemId` `itemId` INT( 11 ) NOT NULL AUTO_INCREMENTно стол нужен определенный ключ (например, первичный ключ идентификатор элемента).
основной синтаксис для добавления первичного ключа AUTO_INCREMENT в существующую таблицу OP:
ALTER TABLE allitems MODIFY itemid INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY;или для новой таблицы, вот пример синтаксиса от документы:
CREATE TABLE animals ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) );ловушки и вещи, чтобы отметить:
- An
AUTO_INCREMENTстолбец должен иметь индекс на нем. (Обычно вы хотите, чтобы это был первичный ключ, но MySQL этого не требует.)- это обычно хорошая идея, чтобы сделать ваш
AUTO_INCREMENTколонкиUNSIGNED. Из документов:используйте атрибут без знака, если это возможно, чтобы разрешить больший диапазон.
- при использовании
CHANGEилиMODIFYпредложение сделать колонкуAUTO_INCREMENT(или даже всякий раз, когда использоватьCHANGEилиMODIFYпредложение) вы должны быть осторожны, чтобы включить все модификаторы для столбца, какNOT NULLилиUNSIGNED, которые отображаются в определении таблицы при вызовеSHOW CREATE TABLE yourtable. В противном случае эти модификаторы будут потеряны.
Comments