创建cars表的SQL语句报#1064语法错误的原因及解决方法
问题排查结果
触发1064语法错误的根本原因是**varchar类型定义不符合MySQL语法规范**:
- MySQL要求使用
varchar可变字符串类型时,必须显式指定最大字符长度,例如varchar(50)代表该字段最多存储50个字符,不允许直接裸写varchar作为字段类型。 - 你提供的建表语句中,
name和image两个字段都只写了varchar未声明长度,SQL解析到该位置时无法识别合法的字段类型定义,就会抛出你看到的语法错误,报错指向的位置也和未指定长度的image字段位置完全对应。
修复方法
给两个varchar字段补充符合业务需求的长度参数即可,修正后的参考建表语句如下:
CREATE TABLE `cars` ( `id` INT unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` varchar(100), `image` varchar(255) ) ENGINE = INNODB DEFAULT CHARSET = utf8;
补充说明:示例中
name字段设为100长度、image字段设为255长度是通用业务场景的常用取值,你可以根据实际要存储的内容长度调整数值。如果后续需要存储emoji表情、特殊生僻字符,建议将字符集从utf8替换为utf8mb4,避免出现存储乱码问题。
内容的提问来源于stack exchange,提问作者universe11
相关产品推荐
相关产品推荐

