好吧,您可以使用SavePoints在postgresql中使用嵌套事务。
请看以下代码示例:
CREATE TABLE t1 (a integer PRIMARY KEY);CREATE FUNCTION test_exception() RETURNS boolean LANGUAGE plpgsql AS$$BEGIN INSERT INTO t1 (a) VALUES (1); INSERT INTO t1 (a) VALUES (2); INSERT INTO t1 (a) VALUES (1); INSERT INTO t1 (a) VALUES (3); RETURN TRUE;EXCEPTION WHEN integrity_constraint_violation THEN RAISE NOTICE 'Rollback to savepoint'; RETURN FALSE;END;$$;BEGIN;SELECt test_exception();NOTICE: Rollback to savepoint test_exception ---------------- f(1 row)COMMIT;SELECT count(*) FROM t1; count ------- 0(1 row)
也许这会对您有所帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)