2014-04-02 5 views
1

이라는 기본 키와 두 개의 varchars : titlegenre 필드가있는 movies이라는 테이블이 있습니다.외래 키 추가시 오류

int 필드 id을 기본 키로 사용하고 desription varchar를 사용하여 genres이라는 새 테이블을 만들었습니다. 나는 genre을 내 movies 테이블에서 변경하여 장르를 참조하는 외래 키를 만들 수있었습니다.

그러나 Mysql Workbench에서는 외래 키를 만들 때 오류가 발생한다고 말합니다.

다음은 문의 :

ALTER TABLE `managemovies`.`movies` 
    ADD CONSTRAINT `genre_reference` 
    FOREIGN KEY (`genre`) 
    REFERENCES `managemovies`.`genres` (`id`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION 
, ADD INDEX `genre_reference_idx` (`genero` ASC) ; 

오류 :

ERROR 1452: Cannot add or update a child row: a foreign key constraint fails (`managemovies`.`#sql-3ba_2b`, CONSTRAINT `genre_reference` FOREIGN KEY (`genre`) REFERENCES `genres` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) 

SQL 문 : [... 위의 것보다 같은 문 ...] ERROR : 오류 장애 복구 스크립트를 실행. 세부 사항은 다음과 같습니다.

ERROR 1046: No database selected 
SQL Statement: 
CREATE TABLE `movies` [...] 

[... the errors above repeated again ...] 
+0

자녀 테이블에 데이터가있을 수 있습니다 도움이되기를 바랍니다. 자식 테이블에서 데이터를 삭제 한 다음 외래 키를 추가하십시오. –

답변

0

외부 키 추가를 시도하십시오.

테이블이이 오류가 발생합니다 외래 키 필드 값을 일치하지 않는 데이터를 포함하는 경우

...

0

그것은 테이블과 같은 movies genres.id 컬럼에 존재하지 않는 장르 열에 데이터가 있습니다.

귀하의 진술은 유효하지 않은 데이터를 삭제 한 후에 작동해야합니다.

Vishad