1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在''评论'附近使用。 (' id' int(10)unsigned NOT NULL AUTO_INCREMENT,' article_i' at line 1
CREATE TABLE IF NOT EXISTS 'comments' (
'id' int(10) unsigned NOT NULL AUTO_INCREMENT,
'article_id' int(10) NOT NULL,
'comment' varchar(45) NOT NULL,
'time' datetime NOT NULL,
'name' varchar(45) NOT NULL,
'email' varchar(45) NOT NULL,
PRIMARY KEY ('id'),
KEY 'fk_comments_article'('article_id')
);
有没有人看到语法错误?
答案 0 :(得分:3)
使用反引号代替单个qoutes。单个qoutes用于字符串文字。
CREATE TABLE IF NOT EXISTS `comments` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`article_id` int(10) NOT NULL,
`comment` varchar(45) NOT NULL,
`time` datetime NOT NULL,
`name` varchar(45) NOT NULL,
`email` varchar(45) NOT NULL,
PRIMARY KEY (`id`),
KEY fk_comments_article(`article_id`)
);
反引号`用于启用标识,如果它们碰巧是MySQL中的关键字,则使用列名/表名。
这是推荐的方式,因为我们不太可能事先知道所有关键字,最终可能会使用关键字之一作为列/表的名称,就像您对 time
<列所做的那样/ strong>在CREATE
声明中。
但是你应该避免使用你知道的关键词作为识别。
答案 1 :(得分:2)
删除单引号。试试这个:
CREATE TABLE IF NOT EXISTS comments (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
article_id int(10) NOT NULL,
comment varchar(45) NOT NULL,
time datetime NOT NULL,
name varchar(45) NOT NULL,
email varchar(45) NOT NULL,
PRIMARY KEY (id),
KEY 'fk_comments_article'(article_id)
);
或尝试后退:
CREATE TABLE IF NOT EXISTS `comments` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`article_id` int(10) NOT NULL,
`comment` varchar(45) NOT NULL,
`time` datetime NOT NULL,
`name` varchar(45) NOT NULL,
`email` varchar(45) NOT NULL,
PRIMARY KEY (`id`),
KEY fk_comments_article(`article_id`)
);
您收到此错误是因为当您编写'id'
时,它会被视为字符串而不是您想要的列
答案 2 :(得分:2)
删除单引号,在SQL Fiddle下面的查询中进行测试:
CREATE TABLE IF NOT EXISTS comments (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
article_id int(10) NOT NULL,
comment varchar(45) NOT NULL,
time datetime NOT NULL,
name varchar(45) NOT NULL,
email varchar(45) NOT NULL,
PRIMARY KEY (id),
KEY fk_comments_article(article_id)
);
答案 3 :(得分:1)
删除'
CREATE TABLE IF NOT EXISTS comments (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
article_id int(10) NOT NULL,
comment varchar(45) NOT NULL,
time datetime NOT NULL,
name varchar(45) NOT NULL,
email varchar(45) NOT NULL,
PRIMARY KEY (id),
KEY fk_comments_article(article_id)
);
答案 4 :(得分:1)
将所有单引号'
替换为后标记,或者只删除单引号。
CREATE TABLE IF NOT EXISTS `comments` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`article_id` int(10) NOT NULL,
`comment` varchar(45) NOT NULL,
`time` datetime NOT NULL,
`name` varchar(45) NOT NULL,
`email` varchar(45) NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_comments_article`(`article_id`)
);
答案 5 :(得分:1)
您使用了单引号,这是错误的,仅用于字符串,不用于封闭列名。删除它并使用反引号,因为您有一些关键字,如TIME, NAME
:
尝试:
CREATE TABLE IF NOT EXISTS `comments` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`article_id` INT(10) NOT NULL,
`comment` VARCHAR(45) NOT NULL,
`time` DATETIME NOT NULL,
`name` VARCHAR(45) NOT NULL,
`email` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`),
KEY fk_comments_article(`article_id`)
);