PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Transakcje zagnieżdżone w postgresql 8.2?

Cóż, masz możliwość korzystania z zagnieżdżonych transakcji wewnątrz postgresql za pomocą SavePoints.

Weźmy ten przykład kodu:

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)

Może to ci trochę pomoże.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Po aktualizacji do macOS Big Sur nie mogę połączyć się z bazą danych PostgreSQL za pomocą MAMP

  2. Wartość Postgres SSLMode wymaga nieważności, gdy obsługa protokołu SSL nie jest skompilowana przy użyciu zewnętrznego opakowania danych

  3. Jak połączyć Postgres z serwerem localhost za pomocą pgAdmin na Ubuntu?

  4. psql:polecenie nie zostało znalezione Mac

  5. Nie znaleziono odpowiedniego sterownika dla jdbc:postgresql://192.168.1.8:5432/NexentaSearch