[SQL] 어떻게 MySQL의에서 삭제 캐스케이드에 사용합니까?
SQL어떻게 MySQL의에서 삭제 캐스케이드에 사용합니까?
나는 구성 요소의 데이터베이스를 가지고있다. 각 구성 요소는 특정 유형이다. 즉, 구성 요소 및 타입 사이의 다 대일 관계가있다. 내가 유형을 삭제하면, 그 유형의 외부 키를 가지고 모든 구성 요소를 삭제하고 싶습니다. 내가 잘못 아니에요 경우에, 구성 요소가 삭제 될 때 유형을 삭제합니다 삭제 된 캐스케이드입니다. 내가 설명 일을 할 수있는 방법이 있습니까?
해결법
-
==============================
1.다음은 구성 요소 테이블에 포함되어 줄 것입니다.
다음은 구성 요소 테이블에 포함되어 줄 것입니다.
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 )
그냥 당신이 InnoDB 스토리지 엔진을 사용할 필요가 기억 : 기본의 MyISAM 스토리지 엔진은 외래 키를 지원하지 않습니다.
-
==============================
2.당신은 DELETE CASCADE ON로 외래 키 제약 조건을 정의해야합니다.
당신은 DELETE CASCADE ON로 외래 키 제약 조건을 정의해야합니다.
참고 : 당신은, 기본의 MyISAM 스토리지 엔진은 외래 키 관계를 지원하지 InnoDB 스토리지 엔진을 사용합니다.
CREATE TABLE `table2` ( `id` int(11) NOT NULL auto_increment, `name` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `ids` (`ids`) CONSTRAINT `foreign` FOREIGN KEY (`ids`) REFERENCES `table2` (`ids`) ON DELETE CASCADE ON UPDATE CASCADE )
-
==============================
3.이 SQL을 사용
이 SQL을 사용
DELETE T1, T2 T1 FROM INNER는 T2 ON T1.key = T2.key 가입 WHERE 조건
from https://stackoverflow.com/questions/511361/how-do-i-use-on-delete-cascade-in-mysql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 레일과 WHERE 절에서 IN의 대신에 사용 하는가? (0) | 2020.03.24 |
---|---|
[SQL] MySQL은 : GROUP BY에없는 (0) | 2020.03.24 |
[SQL] 포스트 그레스에서 LIKE와의 차이 ~ (0) | 2020.03.24 |
[SQL] SQL Express를 연결 문자열 : 응용 프로그램 위치에 MDF 파일 위치에 상대적인 (0) | 2020.03.24 |
[SQL] 가장 좋은 방법은 MySQL의 주입 및 크로스 사이트 스크립팅에 대한 방어 (0) | 2020.03.24 |