MySQL의 기본 ON DELETE 동작은 무엇입니까?
MySQL 문서를 구문 분석하려고 합니다.더 명확해질 수 있어요.SET NULL, NO ACTION, RESTRICT, CASCED 및 SET DEFAULT의 5가지 가능성이 있는 것 같습니다.
NO ACTION과 RESTRICT는 같은 작업(FK를 망가뜨리는 DB 변경 방지)을 수행하며, 이것이 기본값이므로 ON DELETE 절을 생략하면 NO ACTION(또는 RESTRICT - 같은 작업)이 됩니다.
SET NULL을 사용하면 부모 행을 삭제할 수 있으며 FK를 NULL로 설정할 수 있습니다.
CASCADE는 자녀 행을 삭제합니다.
SET DEFAULT는 절대 사용하지 마십시오.
이것은 어느 정도 맞습니까?
네, 맞습니다.
조치 없음: [...] InnoDB는 상위 테이블의 삭제 또는 업데이트 작업을 거부합니다.
RESTRICT: 부모 테이블의 삭제 또는 업데이트 작업을 거부합니다.RESTRICT(또는 NO ACTION)를 지정하는 것은 삭제 시 또는 업데이트 시 절을 생략하는 것과 같습니다. [...
보아하니NO ACTION
그리고.RESTRICT
동의어입니다.또한 없을 때 사용하므로ON DELETE / UPDATE
조항, 이것이 기본 행동이다.
SETNULL:또는 업데이트를 부모 테이블과 아이가 테이블에서 NULL.[...]에 외래 키 열 또는 행을 행을 삭제합니다.
외국 칼럼 NULL하지 않NULL(또는 InnoDB또는 업데이트를 삭제 허용하지 않는다)로 발표되지 않을 경우 설정됩니다.
CASCADE:또는 업데이트를 부모 테이블과 자동 또는을 업데이트하고 아이 테이블에서 일치하는 행을 삭제합니다.[...]이 한줄로 늘어선 삭제를 클릭합니다.
계단식 표 지우는 외국인 칼럼(또는 업데이트).
SETDEFAULT:이 행동은 파서를 통해, 하지만InnoDB 토대 표 정의 DELETESETDEFAULT 또는 업데이트 SETDEFAULT 조항 ONON이 들어 있는 인정 받고 있다.
그래서 기본적으로 그 옵션을 사용하지 못한다.
언급URL:https://stackoverflow.com/questions/1027656/what-is-mysqls-default-on-delete-behavior
'programing' 카테고리의 다른 글
Javascript를 사용하여 DOM 요소를 대체하려면 어떻게 해야 합니까? (0) | 2022.10.03 |
---|---|
C에서의 템플릿 시뮬레이션(큐 데이터 타입의 경우) (0) | 2022.10.03 |
Python 문자열에서 HTML 제거 (0) | 2022.10.03 |
비누 연장 설치 방법 (0) | 2022.10.03 |
오류: '../build/debug/sqlclient' 모듈을 찾을 수 없습니다. (0) | 2022.10.03 |