반응형
해당 오류 내용을 대략 번역해보면 'SQL 구문에 오류가 있다.'라는 내용이다. 이와 관련해서 여러 글들을 찾아보면 대부분 SQL 이 잘못되어 있거나 Model 명과 실제 테이블 컬럼의 명이 다르거나 SQL 쿼리 문이 잘못되어 있다는 거였다.
나도 처음에는 쿼리문이 잘못 되어있는줄 알고 찾아보았지만 쿼리문에는 문제가 없었다. 그러다 알게 된 사실인데 테이블을 생성할 때 예약어를 컬럼명이나 DB 명으로 생성하는 안 되는 거였다. 그중 난 'Order'라는 단어를 사용했는데 이것 조차 안 되는 건 줄 몰랐다.
해결 방식
1. 쿼리 문에 문제가 있는지 확인한다.
2. 예약어를 사용했는지 확인한다.
DB 예약어 링크
Oracle
https://docs.oracle.com/cd/B19306_01/em.102/b40103/app_oracle_reserved_words.htm
SQL Server
MySQL
https://dev.mysql.com/doc/refman/8.0/en/keywords.html
MariaDB
https://mariadb.com/kb/en/reserved-words/
예약어를 사용하고 싶은 경우
만약, 예약어로 사용하고싶은 경우 '(작은따옴표)로 묶은 다음 사용하면 된다. ex) 'Order'
하지만 개인적으로 예약어를 사용하는 건 추천하고 싶지 않다.
반응형
댓글