2010-02-02 4 views
1

여기에 문제가 있습니다. 위치 테이블이있는 위치를 삭제하면 할당 된 사람을 잃을 염려가 없습니다. id = 1 인 위치에있는 항목이고 이름은 "위치 없음"입니다. 그리고 내가 뭘 하려는지,하지만 실패!MySQL "ON DELETE CASCADE"가 너무 강력합니다

ALTER TABLE `persons` 
    ADD CONSTRAINT `persons_ibfk_1` FOREIGN KEY (`location_id`) 
    REFERENCES `locations` (`id`) ON DELETE SET `location_id` = 1; 

감사합니다!

답변

3

ON DELETE SET DEFAULT (기본값을 1로 설정) 또는 ON DELETE SET NULL을 사용하십시오. 세 번째 옵션은 삭제하기 전에 모든 ID를 수동으로 1로 설정하는 것입니다.

+0

감사합니다. innoDB가 SET DEFAULT를 지원하지 않아 SET NULL을 사용해야합니다. ( – antpaw

+0

이상한. http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key -constraints.html은 지원해야한다고 말합니다. – Bozho

관련 문제