MySQL插入字符报ERROR1054:char类型列无法插入字符的问题排查
问题原因与解决方案
你碰到的这个错误其实是MySQL里非常常见的基础问题,核心点在于字符串类型的字段值必须用单引号(或双引号)包裹,而你直接写了P,MySQL会把它误认为是一个列名——但你的oee表里根本没有叫P的列,所以才会抛出Unknown column 'P' in 'field list'的报错。
为什么插入整数43就没问题?因为整数类型的值不需要加引号,MySQL能直接识别为数值;而你的PASSFAIL列是char类型(属于字符串类),所以给它赋值的时候必须用引号把值括起来。
你只需要把插入语句改成下面这样,就能正常执行了:
mysql> insert into oee (ID_NO,S_NO,START_TIME,END_TIME,PASSFAIL) VALUES (67,85,345643,345633,'P');
这里给你提个小建议:为了兼容性和代码规范,建议统一用单引号包裹字符串值。如果要插入的字符串本身包含单引号,记得用两个单引号转义,比如要插入P's,就得写成'P''s'。
内容的提问来源于stack exchange,提问作者Krishnakumar M
相关产品推荐
相关产品推荐

