You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL新手求助:ERROR 1364与ERROR 1136报错解决方法

解决MySQL插入数据的两个报错问题

错误1:ERROR 1364 (HY000): Field 'Item_name' doesn't have a default value

原因

items表的Item_name字段既没设置默认值,也没开启**允许为空(NULL)**属性。MySQL插入数据时,若未指定该字段的值,会因找不到默认值触发报错。

解决办法

两种可选方案:

  • 方案1:修改表结构,让Item_name允许为空
    执行以下SQL(把VARCHAR(255)替换成你实际使用的字段类型和长度):
    ALTER TABLE items MODIFY COLUMN Item_name VARCHAR(255) NULL;
    
  • 方案2:修改表结构,给Item_name设置默认值
    比如设置默认值为空字符串:
    ALTER TABLE items MODIFY COLUMN Item_name VARCHAR(255) DEFAULT '';
    

错误2:ERROR 1136 (21S01): Column count doesn't match value count at row 1

原因

你指定了要插入4个字段(Item_code,Item_name,Qty,Price),但每个值组里只提供了1个值(比如('X01')),列数和值的数量不匹配,导致报错。

解决办法

如果要插入所有字段,每个值组必须提供对应数量的值。若部分字段暂无数据,可使用NULL(前提是字段允许为空)或对应默认值:

INSERT INTO items(Item_code, Item_name, Qty, Price) 
VALUES
('X01', '商品1', 10, 29.9),
('X02', '商品2', 5, 19.9),
('X03', '商品3', 8, 39.9),
('X04', '商品4', 15, 9.9),
('X05', '商品5', 20, 59.9),
('X06', '商品6', 7, 14.9),
('X07', '商品7', 12, 24.9),
('X08', '商品8', 3, 69.9),
('X09', '商品9', 18, 44.9),
('X10', '商品10', 4, 79.9)
ON DUPLICATE KEY UPDATE Item_code = VALUES(Item_code);

如果只需要插入Item_code,先通过错误1的解决方法处理其他字段(允许为空或设置默认值),再使用你最初的插入语句即可。

额外提示:ON DUPLICATE KEY UPDATE仅在Item_code是主键或唯一键,且插入值已存在时才会执行更新操作。若Item_code不是主键/唯一键,这个子句不会生效。

内容的提问来源于stack exchange,提问作者Athiradh A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 03:10:30