PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Các giao dịch lồng nhau trong postgresql 8.2?

Bạn cũng có thể sử dụng các giao dịch lồng nhau bên trong postgresql bằng cách sử dụng SavePoints.

Lấy ví dụ về mã này:

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)

Có thể điều này sẽ giúp bạn một chút.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cài đặt Deepdive, lỗi PostgreSQL

  2. Cách pg_typeof () hoạt động trong PostgreSQL

  3. Các truy vấn PostgreSQL không bị giết khi tắt máy chủ ứng dụng

  4. Đếm tần số tự do của mảng hoặc đối tượng jsonb

  5. hàm UNIX_TIMESTAMP không tồn tại