親テーブルの行を削除する際に子テーブルからも行を削除する方法


親テーブルと子テーブルの関係では、通常、外部キー制約を使用して関連を確立します。外部キー制約を設定することで、親テーブルの行が削除されると、子テーブルの関連する行も自動的に削除されるようになります。

以下に、この機能を実現するためのシンプルで簡単な方法とコード例を示します。

  1. 外部キー制約を設定する 子テーブルに親テーブルの外部キー制約を設定します。これにより、関連する行が自動的に削除されます。

例えば、親テーブルがparent_table、子テーブルがchild_tableである場合、以下のようなSQL文を使用して外部キー制約を設定します。

ALTER TABLE child_table
ADD FOREIGN KEY (parent_id)
REFERENCES parent_table(id)
ON DELETE CASCADE;

上記の例では、child_tableparent_idカラムがparent_tableidカラムを参照しています。ON DELETE CASCADEは、親テーブルの行が削除された場合に、関連する子テーブルの行も削除するように指定しています。

  1. テストと確認 上記の設定が正しく機能するかどうかを確認するために、テストデータを作成し、削除操作を行ってみます。
-- 親テーブルにデータを挿入
INSERT INTO parent_table (id, name) VALUES (1, '親データ');
-- 子テーブルにデータを挿入
INSERT INTO child_table (id, parent_id, name) VALUES (1, 1, '子データ');
-- 親テーブルの行を削除
DELETE FROM parent_table WHERE id = 1;

上記のDELETE文を実行すると、親テーブルの行が削除されると同時に、関連する子テーブルの行も自動的に削除されます。

以上が、親テーブルの行を削除する際に子テーブルからも行を削除する方法の簡単な説明です。これにより、データベースの整合性を保ちながらデータを効率的に管理することができます。