MySQL docs을 구문 분석하려고합니다. 그들은 더 명확해질 수 있습니다. 그들은 SET NULL, NO ACTION, RESTRICT, CASCADE 및 SET DEFAULT의 다섯 가지 가능성이 있다고 말합니다.MySQL의 기본 ON DELETE 동작은 무엇입니까?
NO ACTION 및 RESTRICT는 동일한 작업을 수행하며 (FK를 깨는 DB 변경을 막음) 기본값이므로 ON DELETE 절을 생략하면 NO ACTION (또는 RESTRICT - 동일한 것) .
SET NULL은 상위 행 삭제를 허용하고 FK를 NULL로 설정합니다.
CASCADE는 하위 행을 삭제합니다.
SET DEFAULT는 절대로 사용하지 마십시오.
다소 차이가 있습니까?
CASCADE 옵션 – jitter
을 놓쳤으며 올바르게 이해했습니다. MYSQL에서 FK 제약 조건에 대한 참조 옵션을 지정하지 않는 것은 ON DELETE RESTRICT를 말하는 것과 같습니다. – jitter
MySQL에서는 단지 ACTION과 RESTRICT가 같은 것으로 간주됩니다. 내 행동이 끝나면 FK 제약 조건을 위반하지 않으면 이론적으로 참조 된 부모를 삭제/변경할 수 없으므로 다른 DB에서는 사실이 아닙니다. – jitter