セットアップ
いくつかのかなり複雑な手順に取り組んでいるときに、単純なクエリをテーブルに呼び出す_debug
ストアド ロギング プロシージャを使用して、デバッグ情報をテーブルに記録し始めました。P_Log('message')
INSERT
_debug
複雑な手順には、エラーが発生した場合にロールバックされるトランザクションが含まれます。問題は、トランザクション中にログに記録されたデバッグ情報もロールバックされることです。手順が失敗したときにデバッグログを正確に確認できるようにする必要があるため、これはもちろん少し逆効果です。
質問
_debug
挿入をロールバックせずに挿入できる方法はありますか? ログは実際には開発でのみ使用されるものであり、私はログに書き込むだけなので、トランザクションの意図された使用方法に違反するかどうかは気にしません。
好奇心から、これは通常どのように処理されますか? エラーのデバッグには、トランザクションがロールバックされているかどうかに関係なく、トランザクション内から任意のログ情報を書き込んだり、変数の状態を確認したりできることが絶対に重要なようです。ここでのベストプラクティスは何ですか?
可能な代替案
- ログを変数に保存し、手順の最後にのみ書き込みます。
- これの問題は、任意の数のデバッグ エントリを挿入できるようにしたいということです。テキスト変数を作成し、後で機能するようにパーシングしますが、非常にハックなようです。
- mysql で組み込みのログを使用する
- 任意のテキストを自由に書き込めるという意味であれば、実際にはこれで問題ありませんが、これまでのところ、このようなものを見つけることができませんでした。