SQL语句如下:
UPDATE task T,
(SELECT MIN(start) AS selected_value from task where parentId=:id) AS ST,
(SELECT MAX(end) AS selected_value from task where parentId=:id) AS EN
SET T.star = ST.selected_value,
T.end = EN.selected_value
WHERE T.id =:id
有时候会报出如下错误
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
怎么解?
对ST,EN中的task起个别名就行
UPDATEtaskT,
(SELECTMIN(start)ASselected_valuefromtaskASt1whereparentId=:id)ASST,
(SELECTMAX(end)ASselected_valuefromtaskASt1whereparentId=:id)ASEN
SETT.star=ST.selected_value,
T.end=EN.selected_value
WHERET.id=:id
对ST,EN中的task起个别名就行
UPDATEtaskT,
(SELECTMIN(start)ASselected_valuefromtaskASt1whereparentId=:id)ASST,
(SELECTMAX(end)ASselected_valuefromtaskASt1whereparentId=:id)ASEN
SETT.star=ST.selected_value,
T.end=EN.selected_value
WHERET.id=:id
对ST,EN中的task起个别名就行
UPDATEtaskT,
(SELECTMIN(start)ASselected_valuefromtaskASt1whereparentId=:id)ASST,
(SELECTMAX(end)ASselected_valuefromtaskASt1whereparentId=:id)ASEN
SETT.star=ST.selected_value,
T.end=EN.selected_value
WHERET.id=:id
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。