> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''id' int(11) not null auto_increment,
'username' varchar(32) default null,
'pa' at line 2
今天使用navicat 创建表格的时候,发现出现了上面的问题,然后检查了我自己创建表格的sql语句:
create table t_user(
'id' int(11) not null auto_increment,
'username' varchar(32) default null,
'password' varchar(32) default null,
'remark' varchar(32) default null,
'email' varchar(32) default null,
'creatTime' timestamp not null default current_timestamp,
'updateTime'timestamp not null default current_timestamp on update,
current_timestamp,
primary key ('id')
);engine=Innodb default charset= utf8;
其实这表面看起来是没有问题的,但是再结合报错语句near ''id' int(11) ,再结合相关的搜索,发现
-
字段名周围的单引号被替换为反引号(`),在MySQL中反引号用于标识数据库、表或列的名称,特别是当这些名称与MySQL的保留字冲突时。如果没有冲突,也可以不使用反引号。
意思就是我的单引号应该改换成反引号(`),改正后的代码为:
CREATE TABLE t_user(
`id` INT(11) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(32) DEFAULT NULL,
`password` VARCHAR(32) DEFAULT NULL,
`remark` VARCHAR(32) DEFAULT NULL,
`email` VARCHAR(32) DEFAULT NULL,
`createTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updateTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
最后运算成功了,所以这里要注意单引号和反引号的区别