DB/MySQL
[HY000][1093] You can't specify target table 'XXX' for update in FROM clause
seungdols
2023. 2. 1. 09:07
[HY000][1093] You can't specify target table 'order_item' for update in FROM clause
위와 같은 오류가 발생 했다.
DELETE from order_item
WHERE id in (
SELECT *
FROM order_item
WHERE item_id IN(
'1','2','3','4','5'
)
);
쿼리를 위와 같았다.
MySQL에서는 아래처럼 조회한 Sub-Query의 결과를 임시 테이블로 만들어 주어야 한다. Oracle과 다른 점이 같은 table 참조가 직접적으로 불가하다. (Update, Delete 쿼리에 해당한다.)
DELETE from order_item
WHERE id in (
SELECT id
FROM (
SELECT *
FROM order_item
WHERE item_id IN
(
'1','2','3','4','5'
)
) tmp
);
반응형