TOPサーバ構築・運用> はじめに
徹底比較!! 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に記します。

仕様項目 PostgreSQL MySQL
開発言語 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の実行結果からみる処理の流れ