Firebird 2.5から「自律型トランザクション (Autonomous Transactions)
」がサポートされました。
これはOracleのPL/SQLでサポートされていたもので、トリガーやストアドプロシジャ内で、その呼び出しもとのトランザクションとは独立した形でトランザクションを扱うことができるものです。
IN AUTONOMOUS TRANSACTION(Firebird Wiki)
Oracleに続いて、DB2 9.7、Firebird 2.5がサポートしたことになります。
便利なのは監査のためのログ取得などで、呼び出し元のトランザクションがロールバックしても、監査のログはそのまま残ります。
Microsoft SQL Serverでは未サポートですが、Microsoft SQL Server
2000からサポートされたテーブル変数がトランザクションの影響を受けないため、シミュレートすることが可能です。
Simulating autonomous transaction behavior in SQL
Server
MySQLでも未サポートですが、MySQLではトランザクションの影響を受けないMyISAMがあるので、それをログ取得用のテーブルに利用すれば、シミュレートすることが可能です。
さて、PostgreSQLではどうでしょうか?
EnterpriseDBならサポートすべき項目ですが。。。。
Aug
12
2009