programing

MySQL의 기본 ON DELETE 동작은 무엇입니까?

prostudy 2022. 10. 3. 15:58
반응형

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

반응형