컴퓨터 관련/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 라는 테이블은 없고 컬럼은 있는데...그렇게따지고보면 다른것들도 모두 컬럼과 동일한 이름인데 왜 문제가 발생하지않는지 이해가 안된다... 차후 알아가봐야하는 문제!
반응형