トランザクション」からの出題です。例題3.23psqlでデータベースに接続し、次の一連のSQLを実行した。してしまったため、エラーになった。最後のCOMMITを実行した後の状態について正しく述べているものを2つ選びなさい。test表にはデータが1行もないtest表にはデータが1行だけあるtest表にはデータが2行あるCOMMITはエラーを起こすCOMMITは正常終了する※この例題は実際のOSS-DB技術者認定試験とは異なります。解答と解説PostgreSQLのトランザクション機能では、途中のSQL文がエラーを起こすと、トランザクション自体がエラーになったとみなされ、以後のSQL文がすべてエラーになる、という制限があります。従って、3つ目のINSERTもエラーになります。この状態で正常に受け付けられるSQL文はROLLBACKとCOMMITだけです。ROLLBACKは文字通り、トランザクション内のすべての更新が取り消されますが、COMMITを実行しても内部的にはROLLBACKが発行され、すべての更新が取り消されます。