親テーブルと子テーブルの関係では、通常、外部キー制約を使用して関連を確立します。外部キー制約を設定することで、親テーブルの行が削除されると、子テーブルの関連する行も自動的に削除されるようになります。
以下に、この機能を実現するためのシンプルで簡単な方法とコード例を示します。
- 外部キー制約を設定する 子テーブルに親テーブルの外部キー制約を設定します。これにより、関連する行が自動的に削除されます。
例えば、親テーブルがparent_table
、子テーブルがchild_table
である場合、以下のようなSQL文を使用して外部キー制約を設定します。
ALTER TABLE child_table
ADD FOREIGN KEY (parent_id)
REFERENCES parent_table(id)
ON DELETE CASCADE;
上記の例では、child_table
のparent_id
カラムがparent_table
のid
カラムを参照しています。ON DELETE CASCADE
は、親テーブルの行が削除された場合に、関連する子テーブルの行も削除するように指定しています。
- テストと確認 上記の設定が正しく機能するかどうかを確認するために、テストデータを作成し、削除操作を行ってみます。
-- 親テーブルにデータを挿入
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文を実行すると、親テーブルの行が削除されると同時に、関連する子テーブルの行も自動的に削除されます。
以上が、親テーブルの行を削除する際に子テーブルからも行を削除する方法の簡単な説明です。これにより、データベースの整合性を保ちながらデータを効率的に管理することができます。