字段|型号|空值|关键字|默认值|额外的
| 学生标识|整数|否|优先级|空值|自动递增
当我需要在表中插入数据时,它的自动增量会自动插入值,但当我尝试此查询insert into student_info values("Harry",75,89,50,56);
时,我得到此错误为ERROR 1136(21S01):列计数与第1行的值计数不匹配
当我写这样的查询时
insert into student_info values(1,"Harry",75,89,50,56);
数据被插入
我不想手动插入Student_id,因为我已将此列声明为AUTO_INCREMENT
Mysql 8.0版
3条答案
按热度按时间wkftcu5l1#
您只需要在查询中显式指定列的列表,并省略自动递增的列。您还没有指定表中包含哪些列,但它将类似于:
xuo3flqw2#
指定
INSERT
作业中的数据栏。例如:数据库引擎不会根据主键是否为
AUTOINCREMENT
来推断所需的内容。它只是查找所提供的值的数目和表中的列数。如果这些值和列数不匹配,则需要指定要使用的列。顺便说一句,你真的应该 * 总是 * 在这些操作中指定列。否则一旦你改变了任何表模式,那么 * 应该 * 仍然有效的操作就不会起作用了。
jmp7cifd3#
你需要写你的请求这样:
当你需要将值传递给你的id自动增量时,传递“空”值,它会自己生成新的值。