第7回:トリガ (1/4)

徹底比較!! PostgreSQL vs MySQLパート2
徹底比較!! PostgreSQL vs MySQLパート2

第7回:トリガ
著者:NTTデータ   藤塚 勤也   2007/9/20
1   2  3  4  次のページ
はじめに

   「第6回:ストアドプロシージャ」では、データベースサーバ内で動作するアプリケーションとしてストアドプロシージャを取り上げました。このストアドプロシージャと同様に、データベースサーバ内で動作するアプリケーションの代表格に「トリガ」があります。

   そこで今回はこのトリガを取り上げ、PostgreSQLとMySQLの違いを説明します。

トリガとは

   「トリガ」とは、データベースに対して何らかの処理が加えられたときに、その処理をきっかけとして事前に用意したプログラムを自動的に起動する機能およびそのプログラムのことです。トリガは特殊なストアドプロシージャの一種で、処理の内容と起動する条件、実行するタイミングなどを指定し、設定を行います。

   実はこれまでトリガを使用できたのはPostgreSQLで、MySQLでは使用できないといわれていました。しかしストアドプロシージャと同様に、MySQLのバージョン5.0においてトリガが使用できるようになったのです。


トリガの仕様比較

   トリガに関わるいくつかの仕様についてPostgreSQLとMySQLのサポート状況を表1に記します。

仕様項目PostgreSQLMySQL
開発言語C言語、PL/pgSQLなどのいくつかの手続き言語拡張SQL文のみ
対応SQL文の種類INSERT、UPDATE、DELETE、同時に複数指定可能INSERT、UPDATE、DELETE
行単位/文単位共に設定可能行単位のみ
BEFORE/AFTER共に使用可能共に使用可能
NEW・OLD演算子使用可能使用可能
カスケードの制限制限設定不可制限設定不可
処理と定義の分離可能工夫することにより可能

表1:トリガの各種仕様

   では、それぞれの仕様項目について説明していきます。

1   2  3  4  次のページ


NTTデータ 藤塚 勤也
著者プロフィール
株式会社NTTデータ   藤塚 勤也
基盤システム事業本部 オープンソース開発センタ シニアスペシャリスト。
日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。

INDEX
第7回:トリガ
はじめに
 開発言語
 具体的な例
 sampleの実行結果からみる処理の流れ
徹底比較!! PostgreSQL vs MySQLパート2
第1回同じようで違うデータ型
第2回拡張部分によって違いがでてくるSQL文
第3回実は差があるキャラクターセットの違い
第4回PostgreSQLとMySQLに対応したGUIツールを使いこなす
第5回バックアップとリストア
第6回ストアドプロシージャ
第7回トリガ
第8回それぞれが持つビュー機能

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored