'데이타베이스 > MySQL' 카테고리의 다른 글
MariaDB(or MySQL) 1093 오류 발생 시 (3) | 2015.04.17 |
---|---|
MyBatis + MariaDB(or MySQL) 사용 시 resultType 맵핑 안될 경우 (0) | 2015.04.14 |
Can not connect to mysql error 10061 에러 (0) | 2008.01.21 |
MariaDB(or MySQL) 1093 오류 발생 시 (3) | 2015.04.17 |
---|---|
MyBatis + MariaDB(or MySQL) 사용 시 resultType 맵핑 안될 경우 (0) | 2015.04.14 |
Can not connect to mysql error 10061 에러 (0) | 2008.01.21 |
아래와 같은 SQL을 실행할 때
INSERT INTO T_NAME (
ID, NAME, ORDER_NO
)
VALUES (
#{id}, #{name},
(
SELECT IFNULL(MAX(ORDER_NO), 0) + 1
FROM T_NAME
WHERE ID = #{id}
)
)
SQL 오류 (1093): Table 'T_NAME' is specified twice, both as a target for 'INSERT' and as a separate source for data 와 같은 오류가 발생한다면 ....
INSERT INTO T_NAME (
ID, NAME, ORDER_NO
)
VALUES (
#{id}, #{name},
(
SELECT IFNULL(MAX(ORDER_NO), 0) + 1
FROM T_NAME ALIAS_FOR_SUBQUERY
WHERE ID = #{id}
)
)
위와 같이 서브쿼리 대상 테이블에 별명(alias)을 주면 해결된다.
오라클에서는 동일 테이블 내에서의 서브쿼리 조합이 가능하지만 MariaDB(or MySQL)는 기본적으로 지원하지 않는 것 같다.