물먹는산세베리아

[MySQL] foreign key 제약 일시적 해제 본문

DataBase

[MySQL] foreign key 제약 일시적 해제

suntall 2022. 11. 16. 17:21

Error 문장

ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails

 

데이터를 수정해야 하는데 foreign key가 설정되어 있는 바람에 수정이 안된다.

 

 foreign key 설정이 되어 있는 칼럼이 constraint 설정이 되어 있는 거라면(ex. vuln_schedule_list_ibfk_1) 이걸 참고하면 된다.

 

 

[MySQL] foreign key 잘 안지워질 때

constraint로 설정하는 바람에 실제로 내가 만든 컬럼명과 지금 돌아가고 있는 컬럼명이 달라서일 수도 있다. SHOW CREATE TABLE [테이블명]; 위 명령어를 입력해보자. 잘 보면 foreign key를 준 컬럼이 vuln_s

oo7-0310.tistory.com

 

하지만 그게 아니라면 일시적으로 foreign key 제한을 해제해주자.

 

SET foreign_key_check = 0;

와 된다.

 

이 방법이 어떻게 보면 강제적으로 권한을 해제하는 것이기 때문에 데이터간의 관계가 무너질 수도 있을 것 같다.

하지만 어차피 날릴 데이터라면 그냥 쓰자.

 

저 명령어 쓰고

 

수정 하고

 

다시 활성화시켜주면 된다.

SET foreign_key_check = 1;