私はDjangoとMySQLを使用しています。Oracle で自律型トランザクションと呼ばれるもの、つまり、トランザクションの一部のみをコミットする (または、トランザクション内にトランザクションを持つ) ことができる必要があります。これは2つのケースで必要です(ただし、解決策は同じになると考えています):
エラー ロギング。エラー テーブルにエラーを記録し、他のすべてのトランザクションをロールバックしたとしても、これらの挿入をコミットしたいと考えています。
テーブルを使用してシーケンスを作成します (ここで説明されているように、TABLE シーケンスと LAST_INSERT_ID() を使用: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html )。このシーケンスを取得/更新し、ステートメントをコミットして、シーケンスを必要とする他のトランザクションのためにテーブルのロックを解除したいと考えています。他のトランザクションをロールバックしても、テーブルがインクリメントされれば問題ありません。