antdb=# begin; BEGIN antdb=# select * from sy01; id
adc8775e-4539-4861-9454-ceae45c568f7 (1 row)
antdb=# select * from sy011; ERROR: relation "sy011" does not exist LINE 1: select * from sy011; ^ antdb=# select * from sy011; ERROR: current transaction is aborted, commands ignored until end of transaction block antdb=# rollback ; ROLLBACK antdb=# begin; BEGIN antdb=# select * from sy01; id
解决方式
业务在代码中捕获该异常,并手工执行一次rollback操作。
或断开该连接后重新建链即可。
下面给出一个示例说明:
antdb=# begin;
BEGIN
antdb=# select * from sy01;
id
adc8775e-4539-4861-9454-ceae45c568f7
(1 row)
antdb=# select * from sy011;
ERROR: relation "sy011" does not exist
LINE 1: select * from sy011;
^
antdb=# select * from sy011;
ERROR: current transaction is aborted, commands ignored until end of transaction block
antdb=# rollback ;
ROLLBACK
antdb=# begin;
BEGIN
antdb=# select * from sy01;
id
adc8775e-4539-4861-9454-ceae45c568f7
(1 row)
antdb=# commit;
COMMIT
原因说明
AntDB区别于oracle的设计,不会在发生异常后自动回滚。需用户手工执行一次回滚操作即可。
手工回滚后复用该连接就不会报错了。