【发布时间】:2019-03-26 12:12:59
【问题描述】:
我可以在 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
但是我怎样才能改变这个顺序呢?
【问题讨论】:
-
您尝试过生命周期回调吗?
-
我会尝试更频繁地冲洗
标签: php mysql symfony doctrine