MySQL创建含ENUM字段的people表触发1064语法错误,请求排查
解决MySQL创建people表的语法错误问题
我一眼就看出问题所在啦——你的SQL语句里用了中文全角的单引号(‘’),而MySQL只认英文半角单引号(''),这是导致语法报错的核心原因。另外还有几处小细节需要调整,比如部分ENUM定义里的标点格式问题。
修正后的完整SQL语句
CREATE TABLE IF NOT EXISTS people ( id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, Lname varchar(20) DEFAULT NULL, Fname varchar(20) DEFAULT NULL, Gender ENUM('M', 'F'), Specialty ENUM('1', '2', '3', '4'), Grade ENUM('I', 'J', 'M', 'S'), Start_date date DEFAULT NULL, PRIMARY KEY (id) );
错误点拆解
- 所有
ENUM选项的单引号都从中文全角‘’改成了英文半角'',这是SQL语法的硬性要求,数据库无法识别中文标点作为字符串分隔符; - 统一了所有标点符号为英文半角格式,避免类似的语法陷阱;
- 微调了代码换行格式,让语句结构更清晰(不影响执行,仅提升可读性)。
把修正后的语句复制到MySQL中执行,应该就能成功创建people表了。
内容的提问来源于stack exchange,提问作者Desperateqa
相关产品推荐
相关产品推荐

