DB/Mysql

[SQL] ERROR 1146 (42S02): Table doesn't exist 에러

JUNGKEUNG 2022. 10. 3. 17:18

원인

Entity에 작성한 테이블과 DB에 만든 테이블이 일치 하지 않아서 생기는 에러이다.

게시물과 회원의 연관관계 매핑을 할때도 Entity와 DB가 일치 하지 않으면 이러한 에러가 발생이 일어날수가 있다.

 

 

해결 방법

1. Entity와 DB의 이름이 같은지 한번더 확인한다.

2, application.properties ,  application.yml 에서 Table을 자동 생성 해주면 된다.

spring.jpa.hibernate.ddl-auto=update

 

ddl-auto 옵션 종류

  • create: 기존테이블 삭제 후 다시 생성 (DROP + CREATE)
  • create-drop: create와 같으나 종료시점에 테이블 DROP
  • update: 변경분만 반영(운영DB에서는 사용하면 안됨)
  • validate: 엔티티와 테이블이 정상 매핑되었는지만 확인
  • none: 사용하지 않음(사실상 없는 값이지만 관례상 none이라고 한다.)

주의할 점

  • 운영 장비에서는 절대 crate, create-drop, update 사용하면 안된다.
  • 개발 초기 단계는 create 또는 update
  • 테스트 서버는 update 또는 validate
  • 스테이징과 운영 서버는 validate 또는 none

'DB > Mysql' 카테고리의 다른 글

DataBase  (0) 2021.11.06