[MySQL||MariaDB] 1093 Error 발생시
- Computer/DB
- 2021. 6. 7.
MySQL, MariaDB 1093 Error 발생
Error 명
SQL 오류 (1093): Table '테이블 명' is specified twice, both as a target for 'INSERT' and as a separate source for date
원인
INSERT INTO T_USR_AREA (AREA_SEQ, AG_01, AG_02, INST_DATE, UPDT_DATE, UPDT_ADMIN)
VALUES ((SELECT IFNULL(MAX(AREA_SEQ)+1, 0) FROM t_usr_area), 'Y', 'Y', CURDATE(), CURDATE(), 'user');
원인은 INSERT 안의 서브 쿼리를 주입함으로써 INSERT가 서브 쿼리를 인식하지 못하는 경우이다.
이로 인해 INSERT가 제대로 작동되지 않고 ERROR코드 1093을 출력하게 된다.
해결 방법
INSERT INTO T_USR_AREA (AREA_SEQ, AG_01, AG_02, INST_DATE, UPDT_DATE, UPDT_ADMIN)
VALUES ((SELECT IFNULL(MAX(AREA_SEQ)+1, 0) FROM t_usr_area ALIAS_FOR_SUBQUERY),
'Y', 'Y', CURDATE(), CURDATE(), 'user');
INSERT 안의 서브 쿼리 FROM 테이블 명 뒤에 ALIAS_FOR_SUBQUERY를 명시해준다.
필자는 WHERE 절을 안 썼기 때문에 이대로 내버려 두게 되었지만 WHERE절이 필요할 경우, SUBQUERY 뒤에 이어 사용하면 된다.
마무리
마지막으로 SELECT문을 통해 조회 결과, 제대로 INSERT 된 것을 확인할 수 있다.
반응형
'Computer > DB' 카테고리의 다른 글
[MariaDB] mysqldump가 실행이 안 되는 경우 (0) | 2021.10.07 |
---|---|
[MariaDB] 대, 소문자 구분 없애기 (0) | 2021.10.06 |
[Mysql] 프로시저 사용시 주의사항 (0) | 2021.03.16 |
[MariaDB] DB 백업 / 복원하기 (0) | 2021.03.16 |
[MYSQL] 계정 만들기 / 권한 확인하기 (0) | 2021.01.04 |