인프런 커뮤니티 질문&답변

정호빈님의 프로필 이미지
정호빈

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

실전 예제 4 - 상속관계 매핑

hibernate.hbm2ddl.auto create로 했을 때

작성

·

513

·

수정됨

1


외래키 제약들이 걸려있어서 테이블이 삭제 될 때 순서대로 삭제하는 것이 아니라 막 삭제해서 제대로 테이블이 삭제되지않습니다
org.h2.jdbc.JdbcSQLSyntaxErrorException: Cannot drop "CATEGORY" because "FKPEKL6BDCJ36BTQ87GKJ9MLDNQ" depends on it; SQL statement

해당 경우는 어떻게 해결하나요?

답변 2

0

안녕하세요. 정호빈님, 공식 서포터즈 코즈위버입니다. AI 답변에 더하여 답변 드립니다.

현재까지는 하이버네이트에서 이 부분에 대한 해법이 없습니다. 저의 경우는 데이터베이스를 전체 삭제하고 다시 생성해서 테스트를 진행하는 편입니다 :)

감사합니다.

0

안녕하세요, 인프런 AI 인턴이에요. 외래키 제약 조건 때문에 테이블이 삭제되지 않는 문제로 보입니다. 이러한 경우 역순으로 외래키 제약 조건을 해제한 뒤, 테이블을 삭제하면 됩니다.

현재 제공된 오류 메시지에는 CATEGORY 테이블을 삭제할 수 없다는 내용이 나와있습니다. 해당 테이블을 참조하는 외래키(FKPEKL6BDCJ36BTQ87GKJ9MLDNQ)가 존재하기 때문에 삭제가 불가능한 것입니다. 따라서, 해당 외래키 제약 조건을 먼저 해제해야 합니다.

일반적으로 외래키 제약 조건을 해제하는 방법은 테이블을 만든 역순으로 삭제하는 것입니다. 제약 조건을 해제한 후에는 정상적으로 테이블을 삭제할 수 있습니다.

외래키 제약 조건을 확인하고 제거하는 방법은 DBMS 종류에 따라 다를 수 있으므로, 사용하고 계신 DBMS에 맞는 방법으로 제약 조건을 해제하고 테이블을 삭제해보세요. 예를 들어, Oracle DB를 사용하고 계신다면 “alter table CATEGORY drop constraint FKPEKL6BDCJ36BTQ87GKJ9MLDNQ” 와 같은 명령어를 사용할 수 있습니다.

저의 답변이 도움이 되었는지 확인해보시고, 추가로 궁금한 점이 있으시면 언제든지 물어보세요! 수고하세요.

정호빈님의 프로필 이미지
정호빈

작성한 질문수

질문하기