🎃

【MySQL】外部キーについて

2023/09/18に公開

概要

FOREIGN KEY ([カラム名]) REFERENCES [テーブル名] ([カラム名])
2つのテーブルの内の一方のテーブルの特定のカラムをもう一方のテーブルの特定のカラムに外部キー制約付きで作成できる。

CREATE TABLE customers (
    id INT PRIMARY KEY AUTO_INCREMENT,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(50)
);
 
CREATE TABLE orders (
    id INT PRIMARY KEY AUTO_INCREMENT,
    order_date DATE,
    amount DECIMAL(8 , 2 ),
    customer_id INT,
    FOREIGN KEY (customer_id)
        REFERENCES customers (id)
);

外部キー制約を設定しておくメリット

  1. orders側でcutomer_idを参照している場合、customers側からorders側で参照されているcustomer_idのレコードを削除できない。

  2. orders側でレコードを作成する際にcustomers側に存在しないcustomer_idを指定することもできない。

Discussion