冲洗时如何更改操作顺序

时间:2019-03-26 12:13:00

标签: php mysql symfony doctrine

在Doctrine中刷新时可以更改sql执行顺序。

Mysql有一个众所周知的错误。该语句可能会导致死锁

INSERT INTO operations(id, user_id) VALUES(null, 123);

UPDATE users SET user_name = 'name' WHERE id = 123;

Deadlock found when trying to get lock; try restarting transaction

所以,我在冲洗时要更改顺序,先更新然后再插入。我该怎么做?

文档说订单是预定义的

  

1)所有实体插入2)所有实体更新3)所有集合   删除4)所有集合更新5)所有实体删除

https://www.doctrine-project.org/api/orm/2.7/Doctrine/ORM/UnitOfWork.html

但是如何更改此顺序?

1 个答案:

答案 0 :(得分:0)

无法更改。如果您遇到此问题,则需要创建自己的交易。然后刷新更新,然后手动刷新插入。