728x90
다른 사람도 헤맬까봐 올리는 글..
[ 문제 상황 ]
- spring boot에서PreparedStatement의 sql문을 이용해서 insert문 실행
- 'failed to manage transaction 구문 오류 “column명”'라는 예외 발생
- 하지만, column명이 틀린 것도 다른 문제도 없었다.
[ 문제 확인 방법 ]
- 먼저 sql문 실행 시 구문 오류가 남 → sql문을 따로 실행해본다. (heidisql 사용)
- 여기서도 “column명”에서 문제 발생 → 이거 sql 예약어인가?
- 결국에 맞았음.. 예약어였다. → 그러면 이름 바꾸거나 아니면 예약어 표시를 해야 함
나는 예약어 이름의 column을 사용해야 해서 표시하는 걸로 선택.
[ 문제 해결 방법 ]
- \"칼럼명\" 을 이용해서 예약어 표시를 없앤다.
- ` column2` (백틱(?))은 안 됐다.
String insertSQL = "insert into DB_Name (column1, \"column2\") values (?,?)";
회사 일하면서 하나씩 배우고 익혀서 또 다른 실수를 안 하길..

728x90
반응형