アイフルのサイトです。
シリア 殺傷 候補 下げ がたい わかっ 沖縄 以外 金額 ソフト トップページ 町村 らしい つきあっ コンテンツ ガイド リスト 対象 日経 基本 事務 メーカー わたし 改正 使用 につい 加え 人々 信用 ください

トリガとは?/ アイフル

[ 452] トリガーとはSQL -TECHSCORE-
[引用サイト]  http://www.techscore.com/tech/sql/14_01.html

トリガーを定義するときには、その対象となるテーブル、トリガーが起動するきっかけとなる表に対する変更処理、トリガーの処理内容、トリガーの起動するタイミングなどを指定します。トリガーは指定したテーブルを監視し、指定した変更処理がテーブルに対して行われると、指定したタイミングで指定した処理を実行します。
トリガーはアプリケーションから呼び出されるものではなく、アプリケーションには全く依存しないものです。ですから、あるアプリケーションにより、テーブルのデータが変更されても、データの整合性を保つようにトリガーを定義しておけば、他のアプリケーションによりデータが変更されてもデータの整合性は確保されます。例えば、受注表にデータを追加すると同時に、在庫表のデータを更新するアプリケーション A を作成したとします。アプリケーション A を日常的に使用しているときに、何らかの理由で受注表にデータを追加だけを行うアプリケーション B を実行してしまうと、データの整合性がなくなることになります。
このような場合、受注表にデータが追加されたときに、在庫表のデータを更新するようにトリガーを定義しておけば、どのアプリケーションでデータを追加したとしても、在庫表のデータの整合性を確保することができます。
また、さまざまなアプリケーションで共通に実行する処理をトリガーに定義しておけば、アプリケーションを簡略化することができます。アプリケーション側では、テーブルに対するデータ操作文だけを実行するようにしておき、後の処理はトリガーに任せてしまうことにより、保守が容易になります。
このように、トリガーを利用することにより、いくつかのメリットがありますが、デメリットが生じることもあります。トリガーはテーブルにデータ操作文が実行されるたびに実行されるものです。ですから、データ操作を頻繁に行うアプリケーションでトリガーを多用するとパフォーマンスが低下することがあります。また、アプリケーション自体はトリガーによってどのような処理が行われるのかを知ることができません。そのため、トリガーを多用すると、アプリケーションによる処理とトリガーによる処理の関係がわかりにくくなり、全体としての処理内容を把握しにくくなります。その結果保守性が低下することがあります。
テーブルに対してデータ操作文が発行されたときに、そのデータ操作文が実行される前にトリガーを起動します。
テーブルに対してデータ操作文が発行されたときに、そのデータ操作文が実行された後にトリガーを起動します。
テーブルに対してデータ操作文が発行されたときに、そのデータ操作文は実行されず、トリガーだけを起動します。
ON 句の後ろには、どのテーブルに対するデータ操作文が発行された時にトリガーを起動するのかを指定します。
FOR EACH ROW を指定すると、複数の行に対するデータ操作文が発行されるとき、各行ごとにトリガーが起動します。これを指定しない場合は、複数の行に対するデータ操作文が発行されても、トリガーは一度だけしか起動されません。
WHEN 句は、ここに指定された条件を満たす場合にのみ、トリガーを起動するように設定するものです。ここで条件を指定すると、例えば、追加された行の特定の列の値が条件を満たす場合にのみ、トリガーを起動するように設定することができます。
定義したトリガーは、いつでも起動される状態になっています。しかし状況によっては、一時的にトリガーを無効にしたい場合もあります。このような場面に備えて ORACLE では、トリガーの有効 / 無効を切り替えることができる SQL 文が用意されています。基本構文は次のとおりです。
を指定するとトリガーは無効になります。トリガーは起動しなくなります。COMPILE を指定すると、トリガーが参照しているテーブルが変更された場合などに、トリガーをコンパイルし直します。

 

戻る

アイフルのサイトです。

アイフルのサイトです。