Re: Uncaught PHP ExceptionDoctrine\DBAL\Exception\UniqueConstraintViolationException: "An exceptionoccurred while executing 'UPDATE - Mailing list pgsql-general

From rob stone
Subject Re: Uncaught PHP ExceptionDoctrine\DBAL\Exception\UniqueConstraintViolationException: "An exceptionoccurred while executing 'UPDATE
Date
Msg-id 872466f8f89ce9c4ba3814095f5fed8c9aaaaa55.camel@gmail.com
Whole thread Raw
In response to Uncaught PHP ExceptionDoctrine\DBAL\Exception\UniqueConstraintViolationException: "An exceptionoccurred while executing 'UPDATE  (Jarosław Torbicki <jaroslaw.torbicki@symmetry.pl>)
List 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 



pgsql-general by date:

Previous
From: Alvar Freude
Date:
Subject: Best Practices for Extensions, limitations and recommended use formonitoring
Next
From: pavan95
Date:
Subject: Re: Copying data from a CSV file into a table dynamically