본문 바로가기

Programming/Database

(2)
mysql 외래키 설정 (foreign key) 지정시 설정값 설명 (RESTRICT,CASCADE,NO ACTION,SET NULL) mysql 외래키 설정할 때 on delete, on update에 대한 이벤트 설정값을 정할 수 있다. 보통은 RESTRICT를 사용하는대, 필요할때 매번 찾는거보다 간단히 정리해보자면 RESTRICT - 개체가 on delete, on update 이벤트를 받으면 그 개체를 참고하고 있는 테이블의 값들의 변경,삭제를 취소합니다. CASCADE - 개체가 on delete, on update 이벤트를 받으면 그 개체를 참고하고 있는 테이블의 값도 변경, 삭제 됩니다. NO ACTION - 개체가 on delete, on update 이벤트를 받으면 그 개체를 참고하고 있는 테이블의 값은 아무 처리 하지 않습니다. (가만히 둠!) SET NULL - 개체가 on delete, on update 이벤트를 ..
mysql 에서 foreign key(외래키) 지정시 오류가 난다면! foreign key 지정할때 오류가 나는 경우는 보통 두 테이블의 컬럼들의 속성이 다를경우이다. 가끔 보면 같은 int 형인대 하나는 unsigned 라서 안된다거나, 한쪽만 not null이 먹혀져있어서 그런 경우가 있다. 그럴때 보면 가차없이 mysql이 에러를 뱉어내는대. 아무리해도 차이가 없는대 오류가 나는 경우가있었다. 그누보드건 작업중 추가테이블과 그누보드 기존 테이블의 연결이었는대, 그누보드 테이블은 스토리지 엔진 이 모두 이미지처럼 MyISAM으로 되어있었고, 새로 추가한 테이블은 모두 InnoDB로 되어져 있었다. 생각도 못했는대, 알아본 결과 InnoDB만 Foreign key를 지원한다고한다.. 예전에는 MyISAM vs InnoDB의 구도로 많이들 이야기 나왔는대, 속시원하게 In..