错误代码:1064You have an error in your SQL

这种错误是语法的问题,看了很多大佬的博客,大家都说一般都是取的字段名和mysql内部的关键字相同或者是where多打了个单引号,但是我发现自己的也没有和关键字冲突也没有where,所以就非常匪夷所思。

这是我的sql语句:

CREATE TABLE 'tb_person_info'(
 'use_id' INT(10) NOT NULL AUTO_INCREMENT,
 'name' VARCHAR(32) DEFAULT NULL,
 'profile_img' VARCHAR(1024) DEFAULT NULL,
 'email' VARCHAR(1024) DEFAULT NULL,
 'gender' VARCHAR(2)DEFAULT NULL,
 'enable_status' INT(2) NOT NULL DEFAULT'0' COMMENT'0:禁止使用,1:允许使用',
 'usertype' INT(2) NOT NULL DEFAULT'1' COMMENT'1:顾客 2:店家 3:超级管理员',
 'create_time' DATETIME DEFAULT NULL,
 'last_edit_time' DATETIME DEFAULT NULL,
 PRIMARY KEY('use_id')

)ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

结果如下:
在这里插入图片描述

其中有意思的是,我用英文的单引号会飘红,中文的单引号就不会。
在这里插入图片描述

回归正题,我就到处去找博客看,看到有些写法的字段名和表是不加单引号的,所以我也去尝试一下,结果真的是这个问题。

USE o2o;
CREATE TABLE tb_person_info(
 use_id INT(10) NOT NULL AUTO_INCREMENT,
  NAME VARCHAR(32) DEFAULT NULL,
 profile_img VARCHAR(1024) DEFAULT NULL,
 email VARCHAR(1024) DEFAULT NULL,
 gender VARCHAR(2)DEFAULT NULL,
 enable_status INT(2) NOT NULL DEFAULT 0 COMMENT '0:禁止使用 1:允许使用',
 usertype INT(2) NOT NULL DEFAULT 1 COMMENT '1:顾客 2:店家 3:超级管理员',
 create_time DATETIME DEFAULT NULL,
 last_edit_time DATETIME DEFAULT NULL,
 PRIMARY KEY(use_id)

)ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 

结果如下:
在这里插入图片描述

考虑到我以前用的是mysql5.5的,是可以用单引号的。但是因为换了电脑,装了5.7版本的,所以才出现这种问题,姑且认为是版本的问题吧。

sql可视化工具:sqlyog 版本:mysql5.7

希望大佬能解答一下具体原因。


版权声明:本文为weixin_43907181原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。