MySQLで外部キーを設定するにはどうすればよいですか
MySQL では、関連性のあるテーブル間で整合性を保つため、FOREIGN KEY 制約を使用して外部キーを設定できます。手順は以下の通りです。
1. 外部キーを含むテーブルを 2 つ作成します。例えば、「orders」という注文テーブルと「customers」という顧客テーブルを作成します。
“`sql
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE orders (
id INT PRIMARY KEY,
order_number INT,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
“`
2. 「orders」テーブルの「customer_id」列を、FOREIGN KEY キーワードを使用して外部キー制約として定義します。これは、「customers」テーブルの「id」列を参照します。
3. 「FOREIGN KEY」句と「REFERENCES」句を使用し、外部キーの参照テーブルと参照列を指定します。
4. 「orders」テーブルにデータを挿入しようとすると、外部キー制約を満たさない場合、MySQL はエラーを発生させます。例えば、「customers」テーブルに存在しない「customer_id」を挿入しようとすると、エラーが発生します。注意:外部キー制約を使用する前に、MySQL のデータベースエンジンが外部キーをサポートするように設定されていることを確認してください。デフォルトでは、MyISAM エンジンは外部キーをサポートしていません。InnoDB エンジンに切り替えて外部キー制約を使用できます。現在のデータベースエンジンを確認するには、次のステートメントを使用します。
“`sql
SHOW ENGINES;
“`
InnoDB エンジンが表示された場合は、外部キー制約が有効になっています。表示されない場合は、データベースエンジンの設定を変更する必要があります。