skillup

技術ブログ

Database

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

投稿日:

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

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

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

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

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

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

PostgreSQL 13.1文書 5.4 制約

-Database
-

執筆者:


comment

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

関連記事

no image

浮動小数点に関して

金額計算なんかでfloatを使うと誤差が出るっていうのは基礎的な話ではありますが、背景知識を含めて理解しておこうと思ったのでメモります。 Contents1 float,doubleでの誤差2 金額の …

no image

SQL結合 サブクエリに関して

今回はサブクエリに関してです。 もちろんSQL実践入門を読み進めています。 SQL上ではテーブル、ビュー、サブクエリというのは機能的にはそれほど変わらず主にパフォーマンスの点で違いがでてきます。 以下 …

no image

JPAでのリレーションに関して

JPAではテーブルをクラスで定義します。もちろん例外とかはいろいろあるのですが、1テーブル1クラスというつくりで、これをエンティティと呼びます。 もともとクラスを作ってからDBを作成したり、JTAの規 …

no image

データベースによるテストデータ作成

テスト環境を作る際に、テストデータを作るのが面倒・・・なんかライブラリでもないかな・・と思っていたんですが、MySQLでいろいろと簡単にできます。 数字 [crayon-66e3f3c39225d31 …

no image

joinとeager loading

フレームワークでデータをORMがらみでjoinするときのネタ。 自分の場合はLaravel。他のフレームワークでも考え方は通じるものあるかと・・ Contents1 通常のjoin2 ループの中で取得 …

アーカイブ