2007年10月26日
SQLトリガについて
SQLのトリガについて
いろいろと調べていたら やはり思っていたことが出来るようですね。
今作っているトリガを編集しないと・・。
2つのテーブルに変更されたデータがはいるのか 前回作ったときに絶対出来るはずだと思ったのですが もう少し調べればわかったのに。
まあ何でもこんなもんですが 疑問に思っていることは 頭の片隅あると解決していきますね。
参照整合性制約は、ほとんどわかりませんので・・。
やはりもっと勉強しないといけないですね。
本当にいろいろと出来るのですねスゴイ!!
いろいろと調べていたら やはり思っていたことが出来るようですね。
今作っているトリガを編集しないと・・。
トリガステートメントではINSERTEDとDELETEDという2種類のテーブルを使用します。
マニュアル参照はこちら
inserted テーブルと deleted テーブルの使用
このテーブルには更新トランザクションによって影響の受けたデータがそのままコピーされて入っています。
DELETE文を発行すると、削除したデータがそのままDELETEDテーブルに格納されています。
INSERT文を発行すると、追加したデータがそのままINSERTEDテーブルに格納されています。
UPDATE文を発行すると、更新前のデータがDELETEDテーブルに、更新後のデータがINSERTEDテーブルに格納されています。
トリガを作成するときに、この2つのテーブルを参照し、何がどう変わったのか、変更のあったデータのキー情報などを取得し、処理をすることとなります。
サンプルで記述したトリガなどは作成しなくとも、参照整合性制約(外部キー)を作成するときにCASCADE指定をすることで、実現できます。
マニュアル参照はこちら
2つのテーブルに変更されたデータがはいるのか 前回作ったときに絶対出来るはずだと思ったのですが もう少し調べればわかったのに。
まあ何でもこんなもんですが 疑問に思っていることは 頭の片隅あると解決していきますね。
参照整合性制約は、ほとんどわかりませんので・・。
やはりもっと勉強しないといけないですね。
本当にいろいろと出来るのですねスゴイ!!

