我用itemID
列在MySQL中创建了一个表。
在创建表之后,现在我想将此列更改为AUTOINCREMENT
。
如何使用ALTER语句来完成此操作
表定义:
ALLITEMS (itemid int(10) unsigned, itemname varchar(50))
我使用了以下代码,但它抛出了一个语法错误
错误:语法不正确的。
ALTER TABLE allitems
MODIFY itemid INT(10) UNSIGNED AUTOINCREMENT;
发布于 2016-08-01 03:38:57
向OP的现有表添加AUTO_INCREMENT主键的基本语法:
ALTER TABLE allitems
MODIFY itemid INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY;
或者对于新表,下面是来自the docs的语法示例
CREATE TABLE animals (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
);
陷阱和注意事项:
AUTO_INCREMENT
列上必须有索引。(通常,您会希望它是主键,但MySQL不要求这样做。)AUTO_INCREMENT
列设置为UNSIGNED
通常是个好主意。在文档中:如果可能,使用UNSIGNED属性以允许更大的范围。CHANGE
或MODIFY
子句创建列代码时(或者实际上,每当您使用CHANGE
或MODIFY
子句时),您应该注意包含该列的所有修饰符,如NOT NULL
或UNSIGNED
,这些修饰符在您调用< AUTO_INCREMENT
>d21CHANGE>时出现在表定义中。否则这些修饰符将丢失。https://stackoverflow.com/questions/6957370
复制相似问题