SQL语法错误 - 找不到错误

SQL语法错误 - 找不到错误

问题描述:

CREATE TABLE 'categories'(
    'id' SMALLINT NOT NULL AUTO_INCREMENT, 
    'category' VARCHAR(30) NOT NULL, 
    PRIMARY KEY ('id'), 
    UNIQUE KEY 'category' ('category') 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

CREATE TABLE 'orders' ( 
    'id' INT UNSIGNED NOT NULL AUTO_INCREMENT, 
    'user_id' INT UNSIGNED NOT NULL, 
    'transaction_id' VARCHAR(19) NOT NULL, 
    'payment_status' VARCHAR(15) NOT NULL, 
    'payment_amount' DECIMAL(6,2) UNSIGNED NOT NULL, 
    'payment_date_time' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY ('id'), 
    KEY 'user_id' ('user_id') 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

CREATE TABLE 'pages' ( 
    'id' MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT, 
    'category_id' SMALLINT UNSIGNED NOT NULL, 
    'title' VARCHAR(100) NOT NULL, 
    'description' TINYTEXT NOT NULL, 
    'content' LONGTEXT NOT NULL, 
    'date_created' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY ('id'), 
    KEY 'category_id' ('category_id'), 
    KEY 'creation_date' ('date_created') 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

CREATE TABLE 'pdfs' ( 
    'id' SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, 
    'tmp_name' CHAR(40) NOT NULL, 
    'title' VARCHAR(100) NOT NULL, 
    'description' TINYTEXT NOT NULL, 
    'file_name' VARCHAR(40) NOT NULL, 
    'size' MEDIUMINT UNSIGNED NOT NULL, 
    'date_created' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY ('id'), 
    UNIQUE KEY 'tmp_name' ('tmp_name'), 
    KEY 'date_created' ('date_created') 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

CREATE TABLE 'users' ( 
    'id' INT UNSIGNED NOT NULL AUTO_INCREMENT, 
    'type' ENUM ('member','admin') NOT NULL, 
    'username' VARCHAR(30) NOT NULL, 
    'email' VARCHAR(80) NOT NULL, 
    'pass' VARBINARY(32) NOT NULL, 
    'first_name' VARCHAR(20) NOT NULL, 
    'last_name' VARCHAR (40) NOT NULL, 
    'date_expires' DATE NOT NULL, 
    'date_created' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    'date_modified' TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', 
    PRIMARY KEY ('id'), 
    UNIQUE KEY 'username' ('username'), 
    UNIQUE KEY 'email' ('email') 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

.................................. ...........................................SQL语法错误 - 找不到错误

我找不到这里的SQL错误。

MySQL表示:

#1064 - 你在你的SQL语法错误; ('id'SMALLINT NOT NULL AUTO_INCREMENT,'category'VARCHAR(30)NOT'on line 1

请帮忙查看对应于您的MySQL服务器版本的手册。我使用的是共享服务器上的MySQL 4.4.x到。

+0

不确定这是否是问题,但您不需要围绕表名引用单引号。可能是什么东西扔掉了。我会先创建一张表,看看它是否是下行的,可能会崩溃它 – Brian 2012-02-27 15:48:06

+3

MySQL 4.4?真? – gbn 2012-02-27 15:51:00

你跟'周围的表和列名,它应该是`(反引号)

CREATE TABLE `categories` 
(`id` SMALLINT NOT NULL AUTO_INCREMENT, 
`category` VARCHAR(30) NOT NULL, 
PRIMARY KEY (`id`), 
UNIQUE KEY `category` (`category`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 
+0

我刚刚输入了这个; p – RichardW11 2012-02-27 15:49:47

摆脱你的单引号或正如@Joachim Isaksson所说的那样,使用反引号`

CREATE TABLE categories (id SMALLINT NOT NULL AUTO_INCREMENT, category VARCHAR(30) NOT NULL, PRIMARY KEY (id), UNIQUE KEY(category) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

此外,下一次,简化您的问题。第一个CREATE TABLE声明有问题。没有必要打印一切。另外一些格式也会很好:-)。

+0

感谢您的帮助。问题现在已经解决了。我刚开始学习MySQL/PHP,现在我发现它是一场艰苦的战斗。 cc:@Joachim Isaksson – 2012-02-27 16:25:57