いま教育のためにA5M2でSQLを実行した時の挙動を確認しています。
トランザクション内でエラーが起きた場合について教えるために下記のようなSQLを上から順に流そうとしました。
begin;
insert into XXXXXX values(null,10000,29999);
そうしたら2個目でテーブルが存在しないエラーになりました。これは想定通りです。
その後エラーが起きたから今のトランザクションを終わるために「rollback;」を実施しようとしました。
実施したところ「current transaction is aborted, commands ignored until end of transaction block」と出てしまいrollback自体が通りません。
試しにbegin、正常なselect文、commitなどを実行して挙動を確かめましたが同じように「current transaction is aborted, commands ignored until end of transaction block」となってしま
いました。
トランザクションの練習なので手動でトランザクションを開始して手動でrollbackなりcommitなりでトランザクションを終わらせたいというのが主眼なのですが、エラー時には手動ロールバックは行えないクライアントソフトという認識でよいでしょうか?
それともrollbackはできるはずなのに何かしらの要因でできなくなってしまっているのでしょうか?