🎃
【MySQL】外部キーについて
概要
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)
);
外部キー制約を設定しておくメリット
-
orders側でcutomer_idを参照している場合、customers側からorders側で参照されているcustomer_idのレコードを削除できない。
-
orders側でレコードを作成する際にcustomers側に存在しないcustomer_idを指定することもできない。
Discussion