如何修复项目要求使用char类型时出现Data too long for column的报错
MySQL 1406报错解决方案
错误根因
你建表时所有CHAR类型字段未指定存储长度,MySQL默认CHAR字段长度为1个字符,只要存入的内容长度超过1就会触发Data too long报错,和字段类型本身无关,无需更换为longtext。
解决步骤
- 首先删除已创建的错误表,执行SQL:
DROP TABLE IF EXISTS students;
- 重新创建表结构,给每个
CHAR字段根据实际业务需求设置足够的存储长度,参考修正后的建表语句:
CREATE TABLE students( stu_id CHAR(10), stu_first_name CHAR(20), stu_last_name CHAR(20), address CHAR(100), city CHAR(30), state CHAR(20), zip CHAR(10), major CHAR(50), email CHAR(50), phone VARCHAR(255) );
注意事项
CHAR为定长字符串类型,存入内容短于设定长度时会自动补空格填充到对应长度,因此设置长度时建议结合实际业务的最大可能长度选择,避免不必要的存储空间浪费。
内容的提问来源于stack exchange,提问作者JSEB
相关产品推荐
相关产品推荐

