Mysql 过程内更新查询的重复输入错误

Mysql 过程内更新查询的重复输入错误,mysql,loops,procedure,Mysql,Loops,Procedure,我正在尝试执行更新MySQL查询,如下所示: UPDATE task, category SET assigned=@date_cur, task.id=(SELECT @last_id := task.id) WHERE task.category=category.id AND category.parent=@super_id ORDER BY task.due LIMIT 1; 我得到以下错误: #1062 - Duplicate entry '108' fo

我正在尝试执行更新MySQL查询,如下所示:

UPDATE   task, category
SET      assigned=@date_cur, task.id=(SELECT @last_id := task.id)
WHERE    task.category=category.id AND category.parent=@super_id
ORDER BY task.due
LIMIT    1;
我得到以下错误:

#1062 - Duplicate entry '108' for key 'PRIMARY'
不知道为什么会发生这种情况,当我使用类似的WHERE进行简单查询时,它可以正常工作,例如:

SELECT task.title FROM task, category WHERE task.category=category.id 
AND category.parent=@super_id
我认为值得一提的是,这是在一个过程中的嵌套while循环中发生的,但我已经能够很好地执行其他更新查询,只有在出现错误时才执行
WHERE task.category=category.id和category.parent=@super\u id