MYSQL 8.0 예약어
카테고리: DB
태그: 예약어
예약어를 찾게된 이유
회사에서 mysql 5.7 버전에서 8.0으로 변경시 버전변경으로 인한 구문오류가 생겼다.
sql 구문오류가 생겨 처리하는 방법을 찾아봤다.
자세한 변경내용
자세한 변경사항은 아래를 참조하자
< 변경내용 링크 >
5.7에서 8.0으로 변경사항 중 키워드와 예약어가 추가되었다고 한다.
Some keywords may be reserved in MySQL 8.0 that were not reserved in MySQL 5.7. See Section 9.3, “Keywords and Reserved Words”. This can cause words previously used as identifiers to become illegal. To fix affected statements, use identifier quoting. See Section 9.2, “Schema Object Names”.
처리방법
처리 방법은 다양한게 있겠지만 3가지 정도로 처리할 수 있겠다.
-
예억어로 지정된 명칭을 다른 명칭으로 바꾼다.
이 경우 관련된 소스를 전부 변경해줘야한다. 사용하는 곳이 적다면 어차피 추가된 키워드 혹은 예약어 이기 때문에 이 방법이 최선. -
mysql 8.0을 사용하지 말고 5.7로 유지한다.
올려야될 이슈가 없다면 그냥 유지하자. 하지만 성능면에서나 보안적인 이슈로 최신을 사용하는 것을 권장 -
키워드 혹은 예약어를 식별자(`)로 처리한다.
select * from order
the error rises:
Error Code: 1064. 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 'order' at line 1
Reserved keywords in MySQL need to be escaped with backticks (`)
예약어를 역따옴표로 묶어 식별자로 처리하였다.
select * from `order`
댓글남기기