Re: Uncaught PHP Exception Doctrine\DBAL\Exception\UniqueConstraintViolationException: "An exception occurred while executing 'UPDATE

From: rob stone <floriparob(at)gmail(dot)com>
To: Jarosław Torbicki <jaroslaw(dot)torbicki(at)symmetry(dot)pl>, "pgsql-general(at)PostgreSQL(dot)org" <pgsql-general(at)PostgreSQL(dot)org>
Cc: "scrappy(at)PostgreSQL(dot)org" <scrappy(at)PostgreSQL(dot)org>
Subject: Re: Uncaught PHP Exception Doctrine\DBAL\Exception\UniqueConstraintViolationException: "An exception occurred while executing 'UPDATE
Date: 2018-08-14 12:20:44
Message-ID: 872466f8f89ce9c4ba3814095f5fed8c9aaaaa55.camel@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello,

On Tue, 2018-08-14 at 07:48 +0000, Jarosław Torbicki wrote:
> Hello,
> I used PostgreSQL 9.3 but I executed upgrade few days ago.
> Now, I am using 10.4 PostgreSQL and:
> doctrine/annotations v1.2.7
> doctrine/cache v1.4.2
> doctrine/collections v1.3.0
> doctrine/common v2.7.3
> doctrine/dbal v2.5.13
> doctrine/doctrine-bundle v1.5.2
> doctrine/doctrine-cache-bundle v1.0.1
> doctrine/inflector v1.0.1
> doctrine/instantiator 1.0.5
> doctrine/lexer v1.0.1
> doctrine/orm v2.5.14
>
>
> I have a problem with ManyToOne relation.
> For example, I have main object with three child and when I execute
> on main object
> $em = $this->getDoctrine()->getManager();
> $em->merge($data);
> $em->flush();
> I sometimes get ERROR message like:
> Uncaught PHP Exception
> Doctrine\DBAL\Exception\UniqueConstraintViolationException: "An
> exception occurred while executing 'UPDATE
>
> I get this ERRROR message not for all main object and not for all
> child. For example, first update child object is ok but in second I
> get error.
>
> SQL prepared by doctrine:
> UPDATE child_table SET id = ?, name = ?, object_name = ?, object_size
> = ? WHERE id = ?' with params ["2", "test Name object 2", "test name
> object 2", "1234", 3]
>
> In this sql the doctrine tries update object with id=3 using data
> from object with id = 2.
>
> This problem didn’t occur before executing upgrade to 10.4 version.
>
> Can you help me and give some tips?
>
>
> Pozdrawiam,
> ______________
> Jarosław Torbicki
> Analityk
>

I haven't a clue what "doctrine" does but your update statement makes
no sense. It effectively is doing this based on your list of params:-

UPDATE child_table SET id = 2, name = 'test Name object 2', object_name
= 'test Name object 2', object_size = 1234 WHERE id = 3;

Why would you change the value of the id column?
If the column "id" is a primary key, you'll no doubt pull a constraint
violation.

Maybe altering your postgresl.conf file to log all statements you might
be able to follow the sequence of statements until the constraint
violation occurs and thus make the necessary changes to the "doctrine"
code.

HTH,
Rob

In response to

Browse pgsql-general by date

  From Date Subject
Next Message pavan95 2018-08-14 13:10:53 Re: Copying data from a CSV file into a table dynamically
Previous Message Alvar Freude 2018-08-14 08:53:19 Best Practices for Extensions, limitations and recommended use for monitoring