我正在使用三个插入语句,如果第三个语句有错误,我想回滚第一个和第二个。如果没有办法做到这一点,请告诉我在 PostgresqQL 中处理此问题的不同方法。
如果我使用COMMIT
or ROLLBACK
,我会得到一个错误。
CREATE OR REPLACE FUNCTION TEST1 ()
RETURNS VOID
LANGUAGE 'plpgsql'
AS $$
BEGIN
INSERT INTO table1 VALUES (1);
INSERT INTO table1 VALUES (2);
INSERT INTO table1 VALUES ('A');
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END;$$;
上面的代码不起作用;COMMIT
并且ROLLBACK
不受 PostgreSQL 函数支持。