这种错误是语法的问题,看了很多大佬的博客,大家都说一般都是取的字段名和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
希望大佬能解答一下具体原因。