ERROR 1093 (HY000): You can't specify target table 'department' for update in FROM clause
时间: 2024-06-17 10:07:59 浏览: 211
loadrunnner 连接 oracle 数据库
这个错误是因为在SQL语句中,不能在FROM子句中引用正在更新的目标表,也就是不能在同一个查询中同时使用更新和查询操作,这可能导致死锁等问题。因此,为了避免这个问题,可以通过使用嵌套查询或者使用临时表的方式来解决。
例如,如果你想要更新表department中的某些记录,但是这些记录同时需要根据其他表的条件进行筛选,那么你可以使用嵌套查询的方式:
```
UPDATE department SET department_name='xxx'
WHERE department_id IN (
SELECT department_id FROM (
SELECT department_id FROM department WHERE department_name='yyy'
) AS temp
);
```
这里的内部查询用于获取需要更新的department_id列表,而外部查询则根据这个列表来更新department表中的记录。注意,在内部查询中使用了一个别名temp来避免直接引用department表。
阅读全文