sql >> Database teknologi >  >> RDS >> PostgreSQL

Fortsæt Postgres-transaktion med undtagelser i Java

Det er muligt at fortsætte, hvis fejlen var inde i et SAVEPOINT . Her er et eksempel i psql:

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

Start en transaktion og indsæt en række:

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

Start et lagringspunkt, indsæt den samme række to gange. Dette vil forårsage en fejl:

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

Rul tilbage til lagringspunktet, og indsæt derefter en anden række.

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

Forpligt dig og se, hvad der er der:

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


  1. MySQL PDO hvordan man binder parametre for IN()

  2. Buffering af dataindtastning i onlineformular i tilfælde af afbrydelse (Racket)

  3. Puma Cluster-konfiguration på Heroku

  4. 5 MySql nyttige forespørgsler under projektudvikling