2017-01-04 158 views
0

我嘗試創建鏈接到兩個表的表。
鏈接的表:MYSQL:「無法添加外鍵約束」

CREATE TABLE `cartsitems` (
    `id` INT NOT NULL AUTO_INCREMENT, 
    `cart_id` INT NOT NULL, 
    `product_id` INT NOT NULL, 
    `price` DOUBLE(6,2) NOT NULL, 
    PRIMARY KEY (`id`), 
    FOREIGN KEY (`cart_id`) REFERENCES `carts`(`id`), 
    FOREIGN KEY (`product_id`) REFERENCES `products`(`id`) 
) 

產品表:

CREATE TABLE `products` (
    `id` INT AUTO_INCREMENT, 
    `category_id` INT, 
    `description` VARCHAR(255), 
    `price` DOUBLE(6,2), 
    PRIMARY KEY (`id`), 
    FOREIGN KEY (`id`) REFERENCES `categories`(`id`) 
) 

的車表:

CREATE TABLE `carts` (
    `id` INT NOT NULL AUTO_INCREMENT, 
    `users_id` INT NOT NULL, 
    PRIMARY KEY (`id`), 
    FOREIGN KEY (`users_id`) REFERENCES `users`(`id`) 
) 

我搜索,我發現這個答案:MySQL Cannot Add Foreign Key Constraint
我檢查&我引擎是一樣的(因爲我沒有設置別的東西),還有e集合 類型是一樣的(均爲int)
其uniqe(主鍵)
問題是什麼?

+1

「產品」表中沒有「id」列。 – Barmar

+0

在'products'表中,外鍵應該是'category_id'。 – Barmar

+0

@Barmar,它必須在副本上刪除,我編輯 –

回答

0

您在產品表中缺少id字段。

CREATE TABLE `products` (
    `id` INT NOT NULL AUTO_INCREMENT, 
    `category_id` INT, 
    `description` VARCHAR(255), 
    `price` DOUBLE(6,2), 
    PRIMARY KEY (`id`), 
    FOREIGN KEY (`id`) REFERENCES `categories`(`id`) 
); 
+0

他只是編輯了問題來添加它。 – Barmar