DB

[DB] ERROR: syntax error at or near "$1"

페루나쵸 2024. 4. 5. 16:31

🐯 [DB] ERROR: syntax error at or near "$1"

mybatis사용중인데 종종 나던 에러인데 

 

참고 : 현재 개발 환경

스프링 부트 / postgresql 14 / mybatis 

 

insert를 하면 해당 에러는 종종 만나게 되는데

이번 경우에는 foreach문이 문제였다

    <insert id="insert" >
     INSERT INTO /* Mapper.xml : insert */
        table.my_table (
            id,
            name,
            address
            ) VALUES
        <foreach collection="list" item="item" index="index" separator=",">
            (
             #{item.id}
            , #{item.name}
            , #{item.address}
            )
        </foreach>
    </insert>

 

위에는 Insert문인데, mybatis에서는 만일 insert를 여러개해야하는경우 ( 배열로 들어오는 경우 )

values에 foreach문을 걸어서 insert를 할 수 있게 되어 있는데

separator를 ";"로 하게 되면 ERROR: syntax error at or near "$1" 에러를 만날 수 있다.

 

만약 나와 같은 코드를 사용하고 있는 경우에는

위 코드처럼 separator를 ","로 하게 되면 문제가 해결 될 것