2017-01-04 27 views
0

2つのテーブルにリンクされたテーブルを作成しようとしました。
リンクテーブル: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`) 
) 

カートテーブル:私は& IをチェックMySQL Cannot Add Foreign Key Constraint

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

私が検索し、私はこの答えを見つけましたエンジンは同じです(私は他の何かを設定しなかったため)また、th eコレクション タイプが同じ(両方ともint)
ユニーク(プライマリキー)
何が問題なのですか?

+1

'products'テーブルには' 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

関連する問題