**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
11个月前关门了。
改进这个问题
CREATE TABLE people (
id INT NOT NULL AUTO_INCREMENT,
first_name VARCHAR(50) NOT NULL,
salary INT NOT NULL,
PRIMARY KEY (id)
);
我的插入语句
INSERT INTO people
VALUES
('Austin', 65000),
('Josh', 100000),
('Pettea', 55000)
;
2条答案
按热度按时间tcomlyy61#
列数量(跳过其列表时表结构中的总列数量)必须与值数量强烈匹配。
因此,请指定列名:
或指定每列的值:
在上一段代码中,可以使用零值或默认关键字而不是null。这三个值中的任何一个都会产生新的值。
前一个代码是首选-它不需要在任何版本,如果结构被改变。
pps公司。我建议将自动递增的列数据类型定义为unsigned—这会将可能自动生成的值的数量增加两倍。
a5g8bdjr2#
应该是:
试试看。
这是一把小提琴:https://www.db-fiddle.com/f/rw6qypbyemvzhcskipbpax/0 单击“运行”。
编辑:我想我误读了您的评论:在这种情况下,您需要指定要插入数据的列。目前,您的查询正在尝试将两列数据值插入到三列表中。
INSERT INTO people
类似于INSERT INTO people(id,first_name,salary)
所以插入两列值的数据返回Column count doesn't match value count at row 1
错误。如果你这样做是可以接受的:但你在制造
id
列组件AUTO_INCREMENT
因此没有必要手动填充它。