skillup

技術ブログ

Database

postgresの外部キー制約やcascadeについて

投稿日:

外部キーを貼っておくと、当然、削除などを行うときにエラーになり、truncateも当然できなくなりますが、cascadeをつけることで、関連するテーブルまで一気にtruncateされます。

主にテストなんかをやっていて、テーブルを初期化したい時に便利。

外部キーネタで他には以下の点なども注意。

  • ちなみに外部キー制約には単なるキー制約以外に、制約(共に削除など)を色々とつけることができる
  • 親と子の型が一致していないと外部キー制約がうまく働かないので要注意。
  • Laravelだと削除時に物理削除ではなく、deleted_atに値を入れるなどの機能もあり。

【Laravel】migration時に外部キーを設定する

Laravel8で外部キー制約を追加する

PostgreSQL 13.1文書 5.4 制約

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

エンティティの抽出と主キー決定

主に設計に関することのメモ。 Contents1 業務フロー分析2 エンティティの抽出3 エンティティの関連付け4 主キーの抽出を行う4.1 主キーの特徴4.2 サロゲートキーのメリット4.3 サロゲ …

no image

自己結合のイメージ

前回に引き続き結合について考えます。 例えば下記のようなテーブルがあり、重複行を削除するとします。 1 りんご 50 2 みかん 100 3 みかん 100 4 みかん 100 5 バナナ 80 この …

no image

大規模Webサービス技術入門 DBの分散

前回に引き続き、大規模サービスを運用するときに必要になるMySQLの知識についてのまとめ Contents1 テーブル・SQL設計2 レプリケーション機能3 パーティショニング テーブル・SQL設計 …

no image

JPAを使用する  JavaSE編

現在の開発ではデータベースへの接続ではJPAを使っています。このJPAがなかなか曲者でいろいろと詰まることがありましたので解説させていただきます。 Contents1 JPAとは?1.1 メリット1. …

no image

ajaxのasync:falseと複数DBのjoinに関して

本日も小ネタ集です。 Contents1 ajax:false2 複数DBでのJOIN ajax:false ajaxは非同期処理が基本ですが、async:falseとすると同期処理になります。 ただ …

アーカイブ