MySQL插入数据报ERROR 1265 字段ngjyra不接受red值如何解决?
错误原因
你创建的ngjyra字段为ENUM枚举类型,建表时仅限定了4个合法取值:'bardhe'、'blu'、'kuqe'、'zeze',你尝试插入的red不在预设的合法取值列表中,MySQL会拒绝写入并抛出ERROR 1265 (01000): Data truncated for column错误。
解决方案
可根据你的实际需求选择以下任意一种处理方式:
- 若
red是输入错误,实际要插入的是对应“红色”的预设值,将插入值改为枚举中对应红色的kuqe即可,插入示例:INSERT INTO makina (lloji, vitprodhimi, ngjyra) VALUES ('示例车型', 2022, 'kuqe'); - 若确实需要
red作为合法取值,可修改表结构将red加入枚举取值列表:
修改完成后即可正常插入ALTER TABLE makina MODIFY COLUMN ngjyra enum('bardhe','blu','kuqe','zeze','red') DEFAULT 'bardhe';red值。 - 若后续需要灵活写入多种颜色值,不想反复修改枚举结构,可直接将
ngjyra字段改为varchar字符串类型:
修改后可写入任意长度不超过20的颜色字符串。ALTER TABLE makina MODIFY COLUMN ngjyra varchar(20) DEFAULT 'bardhe';
内容的提问来源于stack exchange,提问作者Metjus Hoxha
相关产品推荐
相关产品推荐

