Re: Uncaught PHP ExceptionDoctrine\DBAL\Exception\UniqueConstraintViolationException: "An exceptionoccurred while executing 'UPDATE

Поиск
Список
Период
Сортировка
От rob stone
Тема Re: Uncaught PHP ExceptionDoctrine\DBAL\Exception\UniqueConstraintViolationException: "An exceptionoccurred while executing 'UPDATE
Дата
Msg-id 872466f8f89ce9c4ba3814095f5fed8c9aaaaa55.camel@gmail.com
обсуждение исходный текст
Ответ на Uncaught PHP ExceptionDoctrine\DBAL\Exception\UniqueConstraintViolationException: "An exceptionoccurred while executing 'UPDATE  (Jarosław Torbicki <jaroslaw.torbicki@symmetry.pl>)
Список 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 по дате отправления:

Предыдущее
От: Alvar Freude
Дата:
Сообщение: Best Practices for Extensions, limitations and recommended use formonitoring
Следующее
От: pavan95
Дата:
Сообщение: Re: Copying data from a CSV file into a table dynamically