본문 바로가기
DataBase/H2 with Error

[해결 방법] 90107-200: Cannot drop table

by HJ0216 2023. 8. 16.

👉 기본 환경

- Language: Java11

- IDE: IntelliJ

- DB: H2 Database

 

 

⌨️ 코드

1
2
DROP TABLE TMP;
 
 

 

 

🖨️오류

1
2
3
Cannot drop "TMP" because "FK3DWS8W2I55AMMNYJP9C99Q144" depends on it;
SQL statement: drop table tmp [90107-200]
 
 
 

 

 

📡 원인

외래키 제약 조건(FK3DWS8W2I55AMMNYJP9C99Q144)으로 인해 TMP 테이블을 삭제할 수 없음

 

TmpItem Entity

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import javax.persistence.*;
 
@Entity
public class TmpItem {
 
    @Id
    @GeneratedValue
    @Column(name = "TMP_ITEM_ID")
    private Long id;
 
    @ManyToOne
    @JoinColumn(name = "TMP_ID")
    private Tmp tmp;
 
    public Long getId() {
        return id;
    }
 
    public void setId(Long id) {
        this.id = id;
    }
 
    public Tmp getTmp() {
        return tmp;
    }
 
    public void setTmp(Tmp tmp) {
        this.tmp = tmp;
    }
}
 
 
 

 

▶ Table 생성 결과

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Hibernate: 
    
    create table TmpItem (
       TMP_ITEM_ID bigint not null,
        TMP_ID bigint,
        primary key (TMP_ITEM_ID)
    )
 
Hibernate: 
    
    alter table TmpItem 
       add constraint FK3dws8w2i55ammnyjp9c99q144 
       foreign key (TMP_ID) 
       references Tmp
 
 
 

TmpItem 테이블이 @JoinColumn에 의해 TMP_ID를 FK로 하여 Tmp 테이블에 외래키 제약 조건을 설정

 

 

📰 해결 방법

1
2
3
DROP FOREIGN KEY FK3dws8w2i55ammnyjp9c99q144;
DROP TABLE TMP;
 
 
 

1. 제약 조건 삭제 후, DROP TABLE

 

1
2
3
DROP TABLE TMPITEM;
DROP TABLE TMP;
 
 

2. FK를 갖고 있는 테이블(TMPITEM) 먼저 DROP 후, 필요한 테이블(TMP) DROP

 

'DataBase > H2 with Error' 카테고리의 다른 글

[해결 방법] 90149-200: Database not found  (0) 2023.08.08