2009-12-08 3 views
0

안녕하세요, 나는 그것에 주소 테이블과 함께 MySQL 데이터베이스가 있습니다. 이상한 mysql 오류

CREATE TABLE IF NOT EXISTS `addresses` (
    `adr_id` int(11) NOT NULL AUTO_INCREMENT, 
    `per_id` int(11) NOT NULL, 
    `adr_street` varchar(50) NOT NULL, 
    `adr_houseno` int(11) DEFAULT NULL, 
    `adr_housenoadd` varchar(10) DEFAULT NULL, 
    `adr_postcode` varchar(25) NOT NULL, 
    `adr_city` varchar(20) NOT NULL, 
    `adr_type` varchar(45) DEFAULT NULL, 
    `cnt_id` int(11) NOT NULL, 
    `adr_date` date DEFAULT NULL, 
    `sys-mut-dt` timestamp NULL DEFAULT NULL, 
    `sys-mut-user` varchar(20) DEFAULT NULL, 
    `sys-mut-id` int(11) NOT NULL DEFAULT '0', 
    PRIMARY KEY (`adr_id`), 
    KEY `per_id` (`per_id`), 
    KEY `cnt_id` (`cnt_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; 


    -- 
    ALTER TABLE `addresses` 
     ADD CONSTRAINT `cnt_id` FOREIGN KEY (`cnt_id`) REFERENCES `countries` (`cnt_id`) ON DELETE NO ACTION ON UPDATE NO ACTION, 
     ADD CONSTRAINT `per_id` FOREIGN KEY (`per_id`) REFERENCES `persons` (`per_id`) ON DELETE NO ACTION ON UPDATE NO ACTION; 

지금 내가이 nessecary없는 결정 때문에 제약이 per_id 삭제하고 싶었 :

그것이 만들어지는 방법입니다. 그래서 나는 그것을 삭제하고 여기에 오류를 참조하십시오
ALTER TABLE `addresses` DROP INDEX `per_id` 

MySQL said: Documentation 
#1025 - Error on rename of './ladosa/#sql-521_d2' to './ladosa/addresses' (errno: 150) 

그런 다음 내가 테이블을 삭제하기로 결정하고, 제약 조건없이 다시 만들어하지만 난 드롭 테이블을했을 때 내가 얻을 :

SQL 쿼리

#1217 - Cannot delete or update a parent row: a foreign key constraint fails 

어떻게이 문제를 해결할 수 있습니까?

답변

5

색인은 외래 키와 동일하지 않습니다. 대신 다음을 시도하십시오.

ALTER TABLE `addresses` DROP FOREIGN KEY `per_id`