LoginSignup
0
1

【SQL】ON DELETE CASCADE

Last updated at Posted at 2023-06-04

概要

親テーブルの行を削除した際に、関連する子テーブルのデータも自動的に削除したい

データベースにおいて、親テーブルと子テーブルの関連性を維持するために外部キー制約が使用されます。
親テーブルの行を削除した際に、関連する子テーブルのデータも自動的に削除する必要がある場合、ON DELETE CASCADEオプションを利用することで便利です。

外部キー制約と「ON DELETE CASCADE」オプションの活用例

▼ 親テーブルと子テーブルを作成する際に「ON DELETE CASCADE」オプションを指定する例

-- 親テーブルの作成
CREATE TABLE parent_table (
  id INT PRIMARY KEY
);

-- 子テーブルの作成
CREATE TABLE child_table (
  id INT PRIMARY KEY,
  parent_id INT,
  FOREIGN KEY (parent_id) REFERENCES parent_table (id) ON DELETE CASCADE
);

上記では、parent_tableという親テーブルとchild_tableという子テーブルを作成しています
child_tableparent_id列はparent_tableid列を参照する外部キー制約を設定し、
ON DELETE CASCADEオプションを指定しています

この設定により、親テーブルの行が削除されると、関連する子テーブルの対応する行も自動的に削除されます

注意点

データベース管理システムによっては、「ON DELETE CASCADE」オプションがサポートされていない場合や、制約名や参照するテーブル・列に制限がある場合があるとのこと

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1