period라는 필드값의 문제

sseongeun·2024년 9월 6일

✅ 클래스의 필드명 주의

내가 받은 파트는 member에 매칭되는 프로젝트(project) 관련 api 제작이었다.

근데 project의 필드인 period에서 에러가 떴다.

[⚠️ datagrip에 뜬 에러]

=> FOR 키워드를 예상하고 있지만, varchar데이터 타입이 나와서 에러가 발생하는 다는 내용이었다.

mysql 사이트에서 예약어를 찾아보니, period는 예약어도 지정된 것도 아니였다.

mysql 공식 사이트
https://dev.mysql.com/doc/refman/8.4/en/keywords.html

문제의 원인은 무엇인가?

에러 내용을 보면, Period for 라는 명령어를 기대했는데 for가 붙여지지 않아서 나오는 에러임을 알 수 있다.

즉, mysql에서 period를 읽고 period for가 실행되어야한다고 잘못 해석한것!!


그렇다면 어떻게 해결해야하는가?

1️⃣ 백틱으로 감싸서 mysql이 period를 필드명으로 인식할수 있게 하자!

CREATE TABLE project (
      created_at   datetime(6)  null,
      id           bigint auto_increment
                   primary key,
      member_id    bigint       not null,
      `period` VARCHAR(255)
)

2️⃣ period말고 duration과 같은 필드명 사용
-> 나는 그냥 이방법을 사용했다.

profile
공부 기록...

0개의 댓글