FK 제약조건 삭제하기 - Cannot drop column <FK컬럼명>: needed in a foreign key constraint

2022. 10. 11. 19:53·Database

⭐ FK 컬럼 삭제가 안되는 상황

테이블에서 외래키 컬럼을 다음 방법으로 지우려고하면 문제가 발생한다.

 

사례1▶ FK컬럼은 일반 컬럼처럼 제거할 수 없음

즉, 아래와 같이 drop할 수 없다.

ALTER TABLE <테이블명> DROP <FK 컬럼명>

 

사례2▶ FK를 삭제하려는 부적절한 쿼리문

아래와 같이 <FK 컬럼명>을 그대로 입력하는 것은 부적절한 방법이다.

alter TABLE <테이블명> DROP FOREIGN KEY <FK 컬럼명>

 

다음과 같은 Error Code가 발생한다.

 

19:14:38 alter TABLE <테이블명> DROP <FK컬럼명> Error Code: 1828.

Cannot drop column '<FK컬럼명>': 

needed in a foreign key constraint 'FK93exnhdf4698rqy4lmt5yapmr' 0.000 sec

 

 

 

⭐ 해결방법: 

컬럼에 걸린 제약조건을 먼저 삭제해준 뒤에 해당 컬럼을 삭제할 수 있다.

 


⭐ 해결: 

두 단계를 거치면 된다.

 

- 1단계

SHOW CREATE TABLE <테이블명>;

의 결과에서 Create Table 컬럼에서 아래와 같은 정보를 확인가능하다.

CONSTRAINT를 확인하자.

 

 

 

- 2단계

alter TABLE <테이블명> DROP FOREIGN KEY <위에서 찾은 CONSTRAINT>;

즉 맨끝에 FK 컬럼명을 쓰지 말고 관련 CONSTRAINT를 써야 한다.

정상적으로 CONSTRAINT가 지워진다

 

 

참고) 다시 SHOW CREATE TABLE <테이블명>; 

으로 확인해보면 CONSTRAINT가 사라진 것을 확인 가능하다. 

 

 


끝!

 

위와 같이 제약조건을 삭제해줬으므로, 이제 FK(였던)컬럼을 drop할 수 있다.

 

▶ 이제는 일반 컬럼처럼 drop 하면 된다.

alter TABLE <테이블명> DROP <FK 컬럼명>;

 

 


 

 

반응형

'Database' 카테고리의 다른 글

[DB] 인덱스 사용 이유 이해하기  (0) 2023.10.17
[H2] Column이 drop 되지 않음 | JPA Bean을 직접 주입하는 실습 중  (0) 2023.01.25
mysql 서버 상태 확인하기(show status) | db connection 전후 Threads 관련 상태변수 확인  (1) 2023.01.11
[DB] 상속 관계 매핑 전략 선택하기  (2) 2022.12.30
ObjectInputStream | file에 이어쓰기로 writeObject 후 readObject하려할 때 object를 못읽는 문제  (0) 2022.12.28
'Database' 카테고리의 다른 글
  • [H2] Column이 drop 되지 않음 | JPA Bean을 직접 주입하는 실습 중
  • mysql 서버 상태 확인하기(show status) | db connection 전후 Threads 관련 상태변수 확인
  • [DB] 상속 관계 매핑 전략 선택하기
  • ObjectInputStream | file에 이어쓰기로 writeObject 후 readObject하려할 때 object를 못읽는 문제
히어로맛쿠키
히어로맛쿠키
  • 히어로맛쿠키
    yeny_lab
    히어로맛쿠키
  • 전체
    오늘
    어제
    • 분류 전체보기 (389)
      • 미분류글 (32)
        • ㅇ (2)
      • JAVA (84)
        • Effective Java (1)
        • Application (21)
      • 컴퓨터구조 & OS (28)
      • 자료구조 + 알고리즘 (43)
      • Database (12)
      • 컴파일러 (10)
      • 수학 (33)
        • 미분방정식 (12)
      • 데이터분석과 머신러닝 (38)
      • 기타 (59)
      • yyeeennyy (25)
  • 공지사항

    • ^o^/♡
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
히어로맛쿠키
FK 제약조건 삭제하기 - Cannot drop column <FK컬럼명>: needed in a foreign key constraint
상단으로

티스토리툴바