보뇨 다이어리

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException 에러 본문

컴퓨터 관련/DB 정보

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException 에러

보뇨 2018. 9. 13. 10:50
반응형

음.....평소와 같이 spi 를 추가하고 있다가 아래와 같은 에러가 발생


1
Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'leave = FROM_UNIXTIME(1534399179)
cs


구문오류라는데 도저히.. 아래는 해당쿼리다


1
2
3
4
5
6
7
8
9
10
11
12
13
    <insert id="updateCommuteRecord" parameterType="com.enow.eoz.commute_record.model.ParamLeaveWorkVO">
    UPDATE commute_record
        <trim prefix="SET" suffixOverrides=",">
            <if test="leave != null">leave = FROM_UNIXTIME(#{leave}),</if>
            <if test="leave_beacon != null">leave_beacon = #{leave_beacon},</if>
            <if test="come_beacon != null">come_beacon = #{come_beacon},</if>
            <if test="come != null">come = FROM_UNIXTIME(#{come}),</if>
            <if test="come_match != null">come_match = #{come_match},</if>
            <if test="leave_match != null">leave_match = #{leave_match},</if>
            <if test="valid != null">valid = #{valid},</if>
        </trim>
        WHERE id = #{id}
    </insert>
cs


음...이것저것 만져보다가 에러가 발생한 부분은 4 line 이였고...인터넷에 아무거나 검색하다가 혹시...? 하는 심정으로 backtick(`) 을 leave 쪽에 감싸보았는데 정상적으로 작동됨....backTick 의 역할은 테이블이나 컬럼의 이름을 감싸는거라는데 leave 라는 테이블은 없고 컬럼은 있는데...그렇게따지고보면 다른것들도 모두 컬럼과 동일한 이름인데 왜 문제가 발생하지않는지 이해가 안된다... 차후 알아가봐야하는 문제!

반응형