文章目录
- [MySQL 报错解决:Column count doesn't match value count at row 1](#MySQL 报错解决:Column count doesn't match value count at row 1)
-
- 一、报错是什么意思?
- 二、常见报错场景
-
- 情况一:没有写字段名,但少给了值
- 情况二:字段写了,但值多了
- [情况三:字段 3 个,值 2 个](#情况三:字段 3 个,值 2 个)
- 三、正确写法
- 四、如何快速排查?
- 五、总结
MySQL 报错解决:Column count doesn't match value count at row 1
报错原文:
Column count doesn't match value count at row 1
在学习 MySQL 或做数据库实验时,经常会遇到这个报错。
其实它非常常见,也非常容易解决。
一、报错是什么意思?
翻译过来就是:
列数 和 插入的值数量 不匹配
也就是说:
字段个数 ≠ VALUES 里的值个数
二、常见报错场景
情况一:没有写字段名,但少给了值
表结构:
sql
id | name | age
错误写法:
sql
INSERT INTO student
VALUES (1, '张三');
- 表有 3 列,只给了 2 个值
情况二:字段写了,但值多了
sql
INSERT INTO student (id, name)
VALUES (1, '张三', 18);
- 字段 2 个,值 3 个
情况三:字段 3 个,值 2 个
sql
INSERT INTO student (id, name, age)
VALUES (1, '张三');
- 仍然报错
三、正确写法
✅ 推荐写法(写全字段)
sql
INSERT INTO student (id, name, age)
VALUES (1, '张三', 18);
优点:安全,不怕字段顺序变化,可读性高,不容易出错
✅ 不写字段(必须给全部列)
sql
INSERT INTO student
VALUES (1, '张三', 18);
⚠️ 注意:
必须给全部列,顺序必须和建表顺序一致
四、如何快速排查?
1️⃣ 查看表结构
sql
DESC 表名;
看清楚表有几列。
2️⃣ 数一下
-
INSERT 后面写了几个字段?
-
VALUES 里面写了几个值?
必须一一对应。
五、总结
Column count doesn't match value count at row 1
本质原因:字段数 ≠ 值数
记住一句话:
字段几个,值就必须几个。
问题 100% 解决。
如果这篇文章帮你解决了问题,欢迎点赞 👍 + 收藏 ⭐