sql >> Databasteknik >  >> RDS >> PostgreSQL

Fortsätt Postgres transaktion med undantag i Java

Det är möjligt att fortsätta om felet var inuti en SAVEPOINT . Här är ett exempel i psql:

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

Börja en transaktion och infoga en rad:

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

Starta en sparpunkt, infoga samma rad två gånger. Detta kommer att orsaka ett fel:

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

Rulla tillbaka till räddningspunkten och infoga sedan en annan rad.

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

Engagera dig och se vad som finns där:

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


  1. Infoga självreferensposter i Postgresql

  2. PHP MySQL grekiska bokstäver som visar ???? märken

  3. Sökordet FROM hittades inte där det förväntades

  4. org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter ERROR