TOP
>
サーバ構築・運用
> はじめに
徹底比較!! 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データ 藤塚 勤也
基盤システム事業本部 オープンソース開発センタ シニアスペシャリスト。
日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。
INDEX
第7回:トリガ
はじめに
開発言語
具体的な例
sampleの実行結果からみる処理の流れ