2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Supabase][Table][ForeignKey]親子関係にあるデータで親データが削除された場合に関連する子データを削除したい

Last updated at Posted at 2023-01-01

前提

  • Supabaseを使いたい
  • Supabaseのアカウントを作成済
  • 親子関係がハッキリしている
  • RDBを使いたい
  • 既にテーブルを作成しているが親、子のテーブルにデータは存在しない

やりたい事

  • テーブル間の親子関係としてリレーション設定を行い、子が保持する親IDが消された場合に子のレコードも一緒に削除したい

期待値

手順

  1. 親、子テーブル作成
  2. 子テーブルにリレーションしたい親のIDを指定
  3. 動作確認

親、子テーブル作成

※ RLSはオン/オフは任意で変更してください。今回のリレーションには関係ありません。


image.png


image.png

子テーブルにリレーションしたい親のIDを指定

  • 2023-01-01現在は親子関係にあるデータ削除(ON DELETE CASCADE)設定についてはSQLEditorでSQLを叩く必要があります。

実行するクエリ

image.png

ALTER TABLE public.ko
ADD CONSTRAINT oid
FOREIGN KEY (oid)
REFERENCES oya(id)
ON DELETE CASCADE;

結果実行結果

image.png

上記のようなクエリ簡単作成サイト(外人さんTHUNKS)

image.png

参考情報

同様の事を行いたいとsupabaseのエンジニア様が回答されている神記事
https://stackoverflow.com/questions/69251891/delete-associated-records-in-supabase

回答されているエンジニアの方(タイラー様)
https://twitter.com/dshukertjrjp

関連情報

関連キーワード

ON DELETE, CASCADE, PostgreSql, Query, リレーション, 親子関係データ, 削除

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?