PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Продължете транзакцията на Postgres с изключения в Java

Възможно е да продължите, ако грешката е била в SAVEPOINT . Ето един пример в psql:

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

Започнете транзакция и вмъкнете ред:

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

Стартирайте точка за запис, вмъкнете същия ред два пъти. Това ще доведе до грешка:

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

Върнете се до точката за запис, след което вмъкнете друг ред.

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

Ангажирайте се и вижте какво има:

# 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. psql клиентът вече може да бъде шах...

  2. PostgreSQL 9.1 с използване на сортиране в изрази за избор

  3. Как да създадете разширение postgres вътре в контейнера?

  4. Как да премахнете условията от клаузата WHERE, ако параметрите са NULL

  5. PGError:няма връзка със сървъра след неактивност