アイフルのサイトです。
回り 抗議 美しい 以下 はじめて 御覧 事項 反対 分類 診断 長崎 社会 トリガ あらかじめ 窓口 詳しく 購入 につい 一戸建て 必ず 頂け 規制 木村 計画 半角 業種 価値 悪い 映画 持ち

トリガとは?/ アイフル

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

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

 

戻る

アイフルのサイトです。

アイフルのサイトです。