💡

一時テーブルと外部キー制約のあれこれ!セッション限定のデータってどう扱うの?

2024/08/15に公開

勘違いしていたのでメモついでに。。。

一時テーブルってどんなもの?

一時テーブルって聞くと、ちょっと特別な感じがするけど、実はセッションが終わるとパッと消えちゃう、ハレの日用のお皿みたいなもの。使ったら後片付けいらずで便利なんだけど、ちょっと取り扱いには注意が必要なんだよね。

外部キー制約ってどう扱うの?

外部キー制約は、データベースの整合性を保つためのルールの一つ。たとえば、「顧客ID」があるテーブルと「注文情報」があるテーブルがあったとして、注文情報には必ず実在する顧客IDが紐づいていないといけない、というルールを設けることができるの。

じゃあ、一時テーブルに外部キー制約を使うと?

ここがポイント!一時テーブルに外部キー制約を設定する場合、その外部キーの対象もまた一時テーブルでないといけないんだ。なんでかっていうと、一時テーブルは使い捨てられる性質上、永続的なテーブルと縛り付けてしまうと、データの整合性を保つのが難しくなっちゃうからね。

なんとなくわかってきた!でも…

外部キー制約をつけずに、データの存在を確認する方法はないの?と思うかもしれないね。これには、アプリケーション側で工夫するか、トリガーを使う方法があるよ。ただし、これらの方法は完璧ではないから、使うときは慎重にね。

Let's happy coding!

Discussion