관리 메뉴

ふたりで

Mariadb insert시 대상테이블 조회가 필요할 경우... 본문

mariadb

Mariadb insert시 대상테이블 조회가 필요할 경우...

graykang 2019. 12. 30. 15:32
728x90
반응형
SMALL

아래와 같은 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)을 주면 해결된다.



출처: https://finkle.tistory.com/118 [삽질은 내친구]

728x90
반응형
LIST
Comments