外部キー制約を使用すると、参照テーブルのデータの整合性を維持することができます。つまり、参照テーブルに存在しない値を外部キーとして持つレコードを追加することはできません。これにより、データベース内の関連するテーブル間で一貫性を保つことができます。
外部キー制約を作成するには、まず外部キーを参照するテーブルに主キーを持つテーブルが必要です。外部キーを指定するカラムには、参照するテーブルの主キーと同じデータ型を使用します。外部キー制約は、テーブルの作成時に定義することも、後からALTER TABLE文を使用して追加することもできます。
以下に、外部キー制約の使用例を示します。
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE orders (
id INT PRIMARY KEY,
user_id INT,
order_date DATE,
FOREIGN KEY (user_id) REFERENCES users(id)
);
この例では、users
テーブルのid
列が主キーとなっており、orders
テーブルのuser_id
列が外部キーとなっています。FOREIGN KEY
キーワードを使用して外部キー制約を定義し、REFERENCES
キーワードを使用して参照先のテーブルと列を指定しています。
外部キー制約を使用することで、orders
テーブルのuser_id
列にはusers
テーブルのid
列に存在する値のみが許可されます。存在しないuser_id
値を持つレコードをorders
テーブルに追加しようとすると、制約違反エラーが発生します。
これにより、データベース内のテーブル間で一貫性を保ちながら、関連するデータの整合性を維持することができます。