sql >> Databáze >  >> RDS >> PostgreSQL

Pokračujte v transakci Postgres s výjimkami v Javě

Je možné pokračovat, pokud k chybě došlo uvnitř SAVEPOINT . Zde je příklad v psql:

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

Zahajte transakci a vložte řádek:

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

Spusťte uložený bod, vložte stejný řádek dvakrát. To způsobí chybu:

# 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"

Vraťte se zpět k bodu uložení a vložte další řádek.

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

Zavázat se a zjistit, co tam je:

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


  1. Interní chyba serveru PHP 500 při volání Volley

  2. Odstraňte pomocí levého vnějšího spojení v Postgresu

  3. parametr other_user_id nefunguje v době provádění, nevím proč

  4. Indexování databáze v kostce s porovnáním B+strom a hash