본문 바로가기

개발이야기

[Mariadb/Mysql] 외래키 disable 시키기

mariadb를 프로젝트에서 처음 사용하면서 현재 업무 특성상 외래키를 잡아서 작업하는 것이 쉽지 않아서

결국은 외래키 없이 db를 구성해서 사용하다보니, 

데이터를 삭제하거나 이럴때 불편함이 없었는데, 새롭게 작업을 고민하다 보니 

외래키에 대한 이슈가 있어서 설계할때부터 이부분을 고민해서 만들었더니, 초기 데이터를 적재할때부터 막히기 시작한다.

결국 데이터 적재시에는 무시하고 데이터를 모두 적재후에 외래키를 넣을려고 하다보니 처음에는 완전히 삭제하고 작업 을 시작했는데 그렇게하다가 나중에 외래키를 다시 연결하는 것도 일이 되어서 오라클처럼 disable 시키는게 있을텐데 하며 찾아보았다.

1. table 단위 :

ALTER TABLE `country` DISABLE KEYS;

2. 전역으로 설정시

SET @@session.unique_checks = 0;
SET @@session.foreign_key_checks = 0;

 

해당 정보는 아래 URL에서 참고하였음.

 

https://dba.stackexchange.com/questions/146349/mariadb-disable-foreign-key-checks

 

MariaDB: disable foreign key checks

On MySql, in order to truncate a table or delete rows when it's normally impossible because of foreign keys (InnoDB only), we use this command: SET FOREIGN_KEY_CHECKS=0; On MariaDB, while this co...

dba.stackexchange.com