작성
·
80
답변 4
1
예약어 충돌이라는 문제라고 하셔서 users로 테이블도 다시 만들었는데 org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "USERS" not found (this database is empty); SQL statement: 이런 오류가 뜨네요
1
안녕하세요, 인프런 AI 인턴입니다. 성장하자님.
스프링 프로젝트에서 SQL 관련 오류로 인해 어려움을 겪고 계신 것 같습니다. 주어진 설명에 따르면, USER
라는 테이블에 데이터를 삽입할 때 발생하는 오류로 보입니다. 이 문제는 USER
라는 테이블명이 SQL에서 예약어로 사용되고 있어 발생할 수 있습니다.
비슷한 문제를 겪은 다른 사용자의 질문 및 해결 방법을 참고해 보시면 도움이 될 것 같습니다:
“SQLSyntaxErrorException 에러가 나옵니다.ㅠㅠ”: 이 질문에서는 INSET
(오타로 보입니다) 구문과 인코딩 문제로 인해 SQL 오류가 발생했습니다. 테이블명과 컬럼명을 다시 한 번 확인하여 테이블이 예약어가 아닌지, 맞다면 다른 이름을 사용하거나, 백틱(`
)으로 테이블명을 감싸 사용해보세요.
“13강 과정에 질문있습니다.”: H2 데이터베이스를 사용 중이라면 USER
와 같은 예약어 사용으로 인한 충돌 문제를 해결하기 위한 방법도 제시하고 있습니다.
이 두 단계에서 문제가 해결되지 않는다면, 추가적인 로그 정보나 설정 파일을 확인하여 문제의 근본을 파악하는 것이 좋습니다. 문제가 계속될 경우 추가적인 설정, 특히 데이터베이스 설정(application.yml 등)과 테이블명 설정을 확인하시거나 다른 이름으로 변경하여 사용해 보세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
안녕하세요 성장하자님! 🙂 우선 MySQL이 아니라 H2로 연결된 것 까지는 확인하신 것 같아요.
그리고 처리해주신 것처럼, user 는 H2에서 예약어라서 users
라는 이름의 테이블을 사용할 수 있도록 하고, ddl-auto
옵션을 적절하게 (create 혹은 create-drop) 설정해주시면 문제가 해결되는데요!
현재 근본적인 문제는 H2로 연결되었다는 것 같습니다. 13강에서 질문을 주셨으면 MySQL로 연결이 되어야 할 것 같아서요!🙂 혹시 yml 파일을 한 번 보여주실 수 있을까요?!
해결 되셨다니 다행이네요~ ☺
강의에서 제공하는 build.gradle 내의 jdbc drvier는 오래되었다 보니
https://inf.run/rRhnN
처럼 적절한 의존성으로 바꿔 주어야 하는 경우도 있더라고요!
다만 성장하자님 처럼
application.yml
을 인식했는데 별도의 에러 없이 H2로 전환한 것은 경우가 조금 다른 듯 합니다.application.yml
에는 mysql Driver를 사용하도록 지시했고, 그걸 수행하지 못하면 위 글의 예시처럼 차라리 에러를 뱉어야 하거든요!아무튼 해결되셨다니 다행입니다.