MySQL의 경우 Oracle과 달리 UPDATE 나 DELETE시 자기 테이블의 데이터를 바로 사용 못해서 SQL실행 시 1093에러가 발생함
UPDATE TBL_TRD_PROD_INFO
SET REC_TIME = CURRENT_TIME(),
REC_ID = '1111'
WHERE PROD_TRD_ID IN
(SELECT PROD_TRD_ID
FROM TBL_TRD_PROD_INFO
WHERE ORDER_STEP != 0
AND ORDER_STEP = 2-1)
- Sub Query를 하나 더 넣어서 임시 테이블을 만들어서 해결
UPDATE TBL_TRD_PROD_INFO
SET REC_TIME = CURRENT_TIME(),
REC_ID = '1111'
WHERE PROD_TRD_ID IN
(SELECT PROD_TRD_ID
FROM
(SELECT PROD_TRD_ID
FROM TBL_TRD_PROD_INFO
WHERE ORDER_STEP != 0
AND ORDER_STEP = 2-1) tmp)
'Database > MySQL' 카테고리의 다른 글
[MySQL] COUNT 함수 (0) | 2019.01.11 |
---|---|
[MySQL] ROW_NUMBER (0) | 2019.01.09 |
[MySQL](Error) Every derived table must have its own alias (0) | 2019.01.08 |
[MySQL] 문자와 숫자 등 타입 변환하는 연산자(cast) (1) | 2018.12.24 |