我错过了什么? MySQL语法错误

时间:2013-04-18 18:39:39

标签: mysql sql database syntax

我遇到了这个错误:

#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 ''tablename'(
'id'MEDIUMINT NOT NULL AUTO_INCREMENT,
'content'TEXT NOT NULL,
'd' at line 1 

从这句话:

CREATE TABLE 'tablename'(
'id'MEDIUMINT NOT NULL AUTO_INCREMENT,
'content'TEXT NOT NULL,
'date_added' DATETIME NOT NULL,
'user' VARCHAR (16) NOT NULL,
PRIMARY KEY ('id'),
UNIQUE ('id')
); ENGINE=MyISAM;

为什么?

3 个答案:

答案 0 :(得分:3)

您需要反引号而不是单引号(')。反击是这个角色:

`

更好 - 不要打扰任何一个:

CREATE TABLE tablename (
  id MEDIUMINT ...

重要:另请参阅以下来自tadman的评论;他们通过解释反引号并指出另一个语法问题很好地完善了这个答案。

答案 1 :(得分:1)

您使用的是不正确的表示法。 在create table语句中,您使用的是单引号(')。 您不能在此处使用表名和列名。 替代品是刻度线(`)。或者完全删除所有符号。

这是您的代码,功能齐全:

CREATE TABLE tablename (
`id` MEDIUMINT NOT NULL,
`content`TEXT NOT NULL,
`date_added` DATETIME NOT NULL,
`user` VARCHAR (16) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE (`id`)
);

答案 2 :(得分:0)

您在列名和前两列的类型之间缺少空格。还有,你有一个;到最后的许多人

CREATE TABLE 'tablename'(
'id' MEDIUMINT NOT NULL AUTO_INCREMENT,
'content' TEXT NOT NULL,
'date_added' DATETIME NOT NULL,
'user' VARCHAR (16) NOT NULL,
PRIMARY KEY ('id'),
UNIQUE ('id')
) ENGINE=MyISAM;