事务回滚在 Postgresql 中不起作用

Kan*_*eel 3 sql postgresql phppgadmin postgresql-9.1 php-pgsql

我正在研究 PostgreSQL 9.1.4 。

我将数据插入到两个表中,效果很好。

我希望对我的表应用事务,两个表都存在于同一数据库中。如果我的第二个表在任何时候失败,我的第一个表应该回滚。

我尝试将“max_prepared_transactions”中的属性设置为非零值/etc/postgres/postgres.conf。但事务回滚仍然不起作用。

smn*_*cks 6

在 postgresql 中,你不能在函数中显式地编写提交或回滚。我认为你可以使用开始结束块,只需简单地写一下

BEGIN;
   insert into tst_table values ('ABC');
   Begin
    insert into 2nd_table values ('ABC');
   EXCEPTION
    when your_exception then
    ROLL BACK;
   END;
END;
Run Code Online (Sandbox Code Playgroud)