SQL插入操作出现Incorrect integer value错误,求解决方案
解决 ER_TRUNCATED_WRONG_VALUE_FOR_FIELD 插入错误
错误原因
你遇到的Error: Incorrect integer value: 'Hammer Mill' for column 'supplier_name' at row 1错误,本质是数据类型不匹配:branch_supplier表中的supplier_name列被定义为整数(INT)类型,但你插入的是字符串值'Hammer Mill',MySQL无法将该字符串转换为合法整数,因此触发截断错误。
解决步骤
确认表结构
先执行命令查看branch_supplier的列定义:DESCRIBE branch_supplier;执行后会看到
supplier_name列的类型为INT,这就是问题根源。修改列数据类型
将supplier_name列改为字符串类型(长度可按需调整):ALTER TABLE branch_supplier MODIFY COLUMN supplier_name VARCHAR(100);如果供应商名称可能更长,可将
100改为255或其他合适数值。重新执行插入语句
再次运行你的插入命令:-- BRANCH SUPPLIER INSERT INTO branch_supplier VALUES(2, 'Hammer Mill', 'Paper');此时数据类型匹配,插入操作会正常执行。
额外排查点
如果修改类型后仍有问题,检查插入语句的列顺序是否与表定义的列顺序完全一致。比如若表列顺序是supplier_id, branch_id, supplier_name,那你的插入值顺序就会错位,也会导致类型不匹配错误。
内容的提问来源于stack exchange,提问作者Cookey
相关产品推荐
相关产品推荐

