親の削除が子に与える意味を決める
ON DELETEは、親の削除が参照している子行にどう影響するかを定義します。例えば注文(orders)を削除したとき、その明細(order_items)をどう扱うかがこれにあたります。PostgreSQLの既定値はNO ACTIONです。RESTRICTは削除を拒否し、CASCADEは子も削除し、SET NULLは子の列がNULLを許容する場合に参照を消します。
NOT NULLの外部キー列でSET NULLを使えない理由はどれですか?
ON DELETEは、親の削除が参照している子行にどう影響するかを定義します。例えば注文(orders)を削除したとき、その明細(order_items)をどう扱うかがこれにあたります。PostgreSQLの既定値はNO ACTIONです。RESTRICTは削除を拒否し、CASCADEは子も削除し、SET NULLは子の列がNULLを許容する場合に参照を消します。
NOT NULLの外部キー列でSET NULLを使えない理由はどれですか?