2012-02-08 98 views
1

我必须失去一些东西很明显,但仍...MySQL错误1064(42000) - 即使有反引号

我获得MySQL ERROR 1064(42000),当我尝试运行以下命令:

CREATE TABLE `mgr_user` 
(
    `id` INT NOT NULL AUTO_INCREMENT, 
    `customer_id` INT NOT NULL, 
    `username` VARCHAR(25), 
    `password` VARCHAR(100), 

    INDEX(`customer_id`), 
    FOREIGN KEY `customer_id` REFERENCES `customer`(`id`) ON UPDATE CASCADE ON  DELETE RESTRICT 
); 
+0

显示完整的架构。 – 2012-02-08 16:35:29

+0

这是唯一的其它create: – 2012-02-08 16:48:01

+0

CREATE TABLE客户 ( \t ID INT NOT NULL AUTO_INCREMENT, \t名VARCHAR(25), \t PRIMARY KEY(ID) ); – 2012-02-08 16:48:12

回答

4

您需要用圆括号环绕外键名称。此外,您的自动列必须是密钥。参见下文

CREATE TABLE `mgr_user` 
(
    `id` INT NOT NULL AUTO_INCREMENT, 
    `customer_id` INT NOT NULL, 
    `username` VARCHAR(25), 
    `password` VARCHAR(100), 
    INDEX(`customer_id`), 
    UNIQUE KEY (`id`), -- <- Auto column is should be a key 
    FOREIGN KEY (`customer_id`) REFERENCES `customer`(`id`) ON UPDATE CASCADE ON DELETE RESTRICT 
); 

这2名更改后,我得到了Query OK, 0 rows affected (0.07 sec)

+0

完美!谢谢。 – 2012-02-08 16:57:00