また、DDL(Data Difinition Language:テーブル操作)にも注意が必要です。Oracle DatabaseのDDLは暗黙コミットが実行されますが、PostgreSQLでは実行されないため、トランザクション中の「CREATE TABLE」のようなDDLもロールバックすることが可能です。
dfltweb1.onamae.com – このドメインはお名前.comで取得されています。
ということは、導入時のDDLをトランザクションにしてどこかで失敗したらロールバックする、ということができるのか。便利かも。
さらに、トランザクション中にエラーが発生した場合の振る舞いも異なります。Oracleでは、いくつかのDMLを実行して途中でエラーを出しても、最後にCOMMITを行うと、正常に実行できたDMLについては処理が確定します。これに対し、PostgreSQLでは、BEGINの後に一度でもエラーを出すと、最後にCOMMITをしても、ROLLBACKしたのと同じ扱いになります。
dfltweb1.onamae.com – このドメインはお名前.comで取得されています。
これは覚えておかないと罠にはまりそう。