CASCADE設定でマップレコードを自働で削除するようにする

高瀬 裕介 545views 更新:2013年12月12日

Aipoのスケジュールデータはスケジュールそのもののテーブルと 参加ユーザーごとのマップテーブルに保管されています。

スケジュール本体のテーブルが削除されたときにはマップテーブルで該当するレコードを削除しないと

無駄なデータが残ってしまいます。

 

外部キーを指定するときにCASCADEの設定を行うとレコードが削除されたときに自動的に対応するマップのレコードが削除されるようになります。

CREATE TABLE YOUR_TABLE
(
    YOUR_ID INTEGER NOT NULL,
    PRIMARY KEY (FILE_ID)
);

CREATE TABLE YOUR_TABLE_MAP
(
   MAP_ID INTEGER NOT NULL,
   YOUR_ID INTEGER NOT NULL,
   FOREIGN KEY (FILE_ID) REFERENCES YOUR_TABLE (FILE_ID) ON DELETE CASCADE,
   PRIMARY KEY(ID)
);

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません