2012-02-08 97 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