広告スペース(バナー)
🗄️SQL レッスン
SELECTの基礎6
データ操作とサブクエリ5
構文の基本を深める7
応用的な条件・結合7
検索とテーブル操作の応用6
高度なクエリ技法6
集計とデータ整合性6
仕上げの機能と応用6
レッスン 32 / 50

TRIGGERの基本(自動で処理を実行する)

このレッスンでは、TRIGGERという自動処理の仕組みを学び、データ変更をきっかけに自動でアクションを実行できるようになることを目標にします。「SQL TRIGGER 使い方」で調べている方向けの内容です。

トリガーは、INSERTUPDATEなどが起きたときに、自動で別の処理を実行してくれる仕組みです。「在庫が変更されたら、変更履歴を自動で記録する」といった使い方ができます。

サンプルコードでは、itemsテーブルがUPDATEされるたびに、自動的にitem_logsテーブルへログを記録するstock_changedというトリガーを作成しています。実際に在庫を更新したあと、ログが自動的に記録されている様子を確認してみましょう。

初心者がよくつまずくのが、OLDNEWという特殊なキーワードの意味です。OLDは変更前の値、NEWは変更後の値を指し、トリガーの中でどちらの値を使いたいかによって使い分ける必要があります。

アプリケーション側でいちいち履歴保存の処理を書かなくても、データベース自身が自動でログを残してくれるため、記録漏れを防げるのが利点です。監査ログや通知の仕組みにもよく使われる、上級者向けの機能です。

SQL
OUTPUT / 実行結果

💡 初回実行時はSQLエンジンの読み込みに数秒かかります。

🎯
ここまでできればゴール達成!
データが変更された時に自動で処理を実行する仕組みが作れるようになります。
広告スペース(バナー)
広告スペース(記事内)