sql >> Database >  >> RDS >> PostgreSQL

Ga door met Postgres-transactie met uitzonderingen in Java

Het is mogelijk om door te gaan als de fout binnen een SAVEPOINT . Hier is een voorbeeld in psql:

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

Begin een transactie en voeg een rij in:

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

Start een savepoint, voeg dezelfde rij twee keer in. Dit veroorzaakt een fout:

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

Rol terug naar het opslagpunt en voeg dan nog een rij in.

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

Zet in en kijk wat er is:

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


  1. verbinding maken met mysql met Zend Server CE

  2. Disaster Recovery Planning voor MySQL &MariaDB

  3. Wat is de grootte van de kolom van int(11) in mysql in bytes?

  4. AWS rds - Hoe te lezen van een leesreplica in een Java-toepassing?