집 >데이터 베이스 >MySQL 튜토리얼 >MySQL의 ON DELETE CASCADE는 유형 레코드를 보존하면서 구성 요소 레코드를 자동으로 삭제할 수 있습니까?
MySQL의 ON DELETE CASCADE: 유형 레코드를 보존하면서 구성요소 삭제
MySQL의 ON DELETE CASCADE
에서는 관련 레코드 삭제 시 종속 레코드 자동 삭제 기능을 제공합니다. 그러나 이를 적용하려면 테이블 관계를 신중하게 고려해야 합니다.
각각 특정 유형에 연결된 데이터베이스 구조 구성 요소를 생각해 보세요. 목표는 유형 자체를 삭제하지 않고 유형과 관련된 모든 구성 요소를 삭제하는 것입니다. 이게 가능할까요?
접근방식
이를 달성하려면 잘 정의된 테이블 구조 내에서 ON DELETE CASCADE
을 전략적으로 사용하는 것이 필요합니다. 해결책은 다음과 같습니다.
<code class="language-sql">CREATE TABLE `components` ( `id` int(10) unsigned NOT NULL auto_increment, `typeId` int(10) unsigned NOT NULL, `moreInfo` VARCHAR(32), -- etc PRIMARY KEY (`id`), KEY `type` (`typeId`), CONSTRAINT `myForeignKey` FOREIGN KEY (`typeId`) REFERENCES `types` (`id`) ON DELETE CASCADE ON UPDATE CASCADE );</code>
구성 요소 테이블 생성: 이 테이블에는 구성 요소 세부 정보와 해당 typeId
이 포함됩니다.
외래 키 구현: 외래 키 제약 조건(myForeignKey
)은 components
테이블의 typeId
열을 types
테이블의 id
열에 연결합니다.
ON DELETE CASCADE 사양: 중요한 요소: ON DELETE CASCADE
. types
테이블의 레코드가 삭제되면(두 테이블 모두 InnoDB 스토리지 엔진을 사용한다고 가정) components
을 공유하는 typeId
테이블의 모든 관련 레코드가 자동으로 삭제됩니다.
주요 고려 사항:
InnoDB는 필수입니다. 외래 키 지원이 부족한 MyISAM에서는 이러한 접근 방식이 효과적이지 않습니다.
위 내용은 MySQL의 ON DELETE CASCADE는 유형 레코드를 보존하면서 구성 요소 레코드를 자동으로 삭제할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!