원인
: Oracle와 달리 MySQL은 UPDATE, DELETE 쿼리문 수행시,
자기 자신의 테이블 데이터를 바로 사용하지 못하게 되어있다.
즉, 아래와 같을때 1093 에러 발생.
INSERT INTO BOARD (TITLE, CONTENT, PARENT) VALUES
('제목', '내용', (SELECT ID FROM BOARD WHERE TITLE = '제목'));
MySQL Error 1093 : You can't specify target table
해결방법
: 어쩔 수 없이 자신의 데이터를 이용해야 하는 경우, Sub Query 사용
INSERT INTO BOARD (TITLE, CONTENT, PARENT) VALUES
('제목', '내용', (SELECT ID FROM (SELECT ID FROM BOARD WHERE TITLE = '제목') A) );
ERROR 1217 (mysql 외래키) (0) | 2021.08.13 |
---|---|
No password provided[for eclipse] (0) | 2021.08.12 |
com.mysql.cj.jdbc.exceptions.CommunicationsException (0) | 2021.08.03 |
Request Entity Too Large (0) | 2021.05.13 |
[Spring boot JPA] Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: (0) | 2021.04.20 |