Mysql在运行查询时给出了错误

时间:2014-04-20 15:49:38

标签: mysql

我无法找到此查询的问题。你能告诉我出了什么问题吗?

CREATE TABLE 'wish' (
 'id' int(10) unsigned NOT NULL AUTO_INCREMENT,
 'title' varchar(256) NOT NULL,
 'issue_number' varchar(10) DEFAULT NULL,
 'type_id' int(10) unsigned DEFAULT NULL,
 'publication_date' date DEFAULT NULL,
 'store_link' varchar(255) DEFAULT NULL,
 'notes' text DEFAULT NULL,
 'got_it' int(10) unsigned DEFAULT NULL,
 PRIMARY KEY ('id'),
 KEY 'type_id' ('type_id'),
 KEY 'got_it' ('got_it'),
 CONSTRAINT 'wish_ibfk_1' FOREIGN KEY ('type_id') REFERENCES 'type' ('id'),
 CONSTRAINT 'wish_ibfk_2' FOREIGN KEY ('got_it') REFERENCES 'user' ('id')
) ENGINE=InnoDB;

Mysql给出了这个错误:

 #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 ''wish' ( 'id' int(10) unsigned NOT NULL AUTO_INCREMENT, 'title' varchar(256)' at line 1

修改

当尝试查询用单引号替换回滴答时,发生错误:

error: #1005 - Can't create table 'comic-booksdb.wish' (errno: 150)

谢谢

1 个答案:

答案 0 :(得分:1)

使用反引号(`)代替单引号:

CREATE TABLE `wish` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `title` varchar(256) NOT NULL,
 `issue_number` varchar(10) DEFAULT NULL,
 `type_id` int(10) unsigned DEFAULT NULL,
 `publication_date` date DEFAULT NULL,
 `store_link` varchar(255) DEFAULT NULL,
 `notes` text DEFAULT NULL,
 `got_it` int(10) unsigned DEFAULT NULL,
 PRIMARY KEY (`id`),
 KEY `type_id` (`type_id`),
 KEY `got_it` (`got_it`),
 CONSTRAINT `wish_ibfk_1` FOREIGN KEY (`type_id`) REFERENCES `type` (`id`),
 CONSTRAINT `wish_ibfk_2` FOREIGN KEY (`got_it`) REFERENCES `user` (`id`)
) ENGINE=InnoDB;

旁注:

  

后退标记用于表和列标识符,但仅在标识符是MySQL保留关键字时才需要,或者当标识符包含空格字符或超出有限集的字符时,通常建议避免使用保留关键字尽可能作为列或表标识符,避免引用问题。

以下情况需要返回滴答:

SELECT id, `my name`, `another field` , `field,with,comma`

修改

要在处理整数数据类型时避免使用'errno:150',请验证感兴趣的主键和外键列是否具有相同的整数类型(大小和符号,如上所示)。例如如果主键是'unsigned int'而外键只是'int',则可能是'errno:150'。