设置AUTO_INCREMENT并使其自动在INSERT命令中给出值?

时间:2016-09-19 02:41:29

标签: mysql sql database

我在尝试在MySQL数据库中自动增加ID列时遇到了一些困难。每个表的主键已经分配,​​所以现在我尝试使它们自动递增。我试过以下但没有成功:

ALTER TABLE table_name MODIFY COLUMN column_name INT NOT NULL AUTO_INCREMENT;

ALTER TABLE table_name MODIFY column_name INT NOT NULL AUTO_INCREMENT;

ALTER TABLE table_name CHANGE column_name INT NOT NULL AUTO_INCREMENT;

ALTER TABLE database.table_name MODIFY column_name INT NOT NULL AUTO_INCREMENT;

我收到一条消息说:

0 row(s) affected Records: 0 Duplicates: 0 Warnings: 0

但是当我尝试使用INSERT INTO table VALUES ('value1', 'value2');添加值而不输入在value1列之前列出的主键列的值时,MySQL给了我一个错误:

  

错误代码1136.列数与第1行的值计数不匹配

我认为一旦设置了自动增量,我就不必为自动增量列添加值。我究竟做错了什么? :(

1 个答案:

答案 0 :(得分:2)

在INSERT语句中为自动增量列添加NULL。 要么 将插入查询更改为:

INSERT INTO table (column1,column2) VALUES ('value1', 'value2');

对于insert语句,如果在“VALUES”之前未指定列,则mysql需要所有列的值。自动增量列允许NULL。 Mysql忽略NULL值并相应地设置自动增量值。