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

Kontynuuj transakcję Postgres z wyjątkami w Javie

Można kontynuować, jeśli awaria znajdowała się w SAVEPOINT . Oto przykład w psql:

# create temporary table foo (i int primary key);
CREATE TABLE

Rozpocznij transakcję i wstaw wiersz:

# begin;
BEGIN
# insert into foo values(1);
INSERT 0 1

Uruchom punkt zapisu, wstaw dwa razy ten sam wiersz. Spowoduje to błąd:

# savepoint bar;
SAVEPOINT
# insert into foo values(2);
INSERT 0 1
# insert into foo values(2);
ERROR:  duplicate key value violates unique constraint "foo_pkey"

Wróć do punktu zapisu, a następnie wstaw kolejny wiersz.

# rollback to savepoint bar;
ROLLBACK
# insert into foo values(3);
INSERT 0 1

Zatwierdź i zobacz, co tam jest:

# commit;
COMMIT
# select * from foo;
 i 
---
 1
 3
(2 rows)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres:Dodaj ograniczenie, jeśli jeszcze nie istnieje

  2. Zmuś Liquibase do mapowania Blob na BYTEA w PostgreSQL

  3. Jak zaimplementować priorytety w SQL (postgres)

  4. Nie można utworzyć EntityManager w JavaFx

  5. 2. kwadrant na PostgresConf US 2018