我在尝试在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行的值计数不匹配
我认为一旦设置了自动增量,我就不必为自动增量列添加值。我究竟做错了什么? :(
答案 0 :(得分:2)
在INSERT语句中为自动增量列添加NULL。 要么 将插入查询更改为:
INSERT INTO table (column1,column2) VALUES ('value1', 'value2');
对于insert语句,如果在“VALUES”之前未指定列,则mysql需要所有列的值。自动增量列允许NULL。 Mysql忽略NULL值并相应地设置自动增量值。