1136: Column count doesn't match value count(列数与值数不匹配)
MySQL含义
INSERT 语句中的列数与 VALUES 列表中的值数不匹配。每一列必须恰好对应一个值。
原因
INSERT 中的列列表与值列表长度不同;在没有列列表的 INSERT 中,值的数量与表的列数不符;缺少/多余的逗号;表结构已更改但脚本未更新。
解决方法
使列数与值数相等。始终使用显式的列列表:INSERT INTO my_table (a, b, c) VALUES (1, 2, 3); 检查表结构:DESCRIBE my_table; 使值与列一一对应,并修正多余/缺少的逗号。
同一数据库的其他条目
- 1044Access denied for user to database(用户对数据库的访问被拒绝)
- 1264Out of range value for column(列的值超出范围)
- 1052Column 'x' in field list is ambiguous(字段列表中的列 'x' 不明确)
- 1048Column 'x' cannot be null(列 'x' 不能为 null)
- 1292Incorrect datetime value / truncated incorrect value(日期时间值不正确 / 截断了不正确的值)
- 1406Data too long for column(列的数据过长)
- 1071Specified key was too long; max key length is 767 bytes(指定的键过长;最大键长度为 767 字节)