2014-09-04 2 views
0

나는 다음과 같은 테이블을 만들려고하는 데 문제가 있어요 :MySQL의 재귀/재귀 관계

CREATE TABLE autor 
(
id_autor VARCHAR (2), 
nom_autor VARCHAR (30), 
rfc_autor VARCHAR (15), 
pseudo_id VARCHAR (2), 
PRIMARY KEY (id_autor), 
FOREIGN KEY (pseudo_id) REFERENCES autor(id_autor) 
); 

나는 다음과 같은 스크립트를 실행하려고 :

INSERT INTO `revistas`.`autor` (`id_autor`, `nom_autor`, `rfc_autor`,`pseudo_id`) VALUES ('A3', 'Quijote','','A7'); 

MySQL을 보여줍니다

Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`revistas`.`autor`, CONSTRAINT `autor_ibfk_1` FOREIGN KEY (`pseudo_id`) REFERENCES `autor` (`id_autor`)) 

이유가 무엇입니까?

고맙습니다.

답변

2

나는 그것이 있어야 믿는다 :

FOREIGN KEY (pseudo_id) REFERENCES autor(id_autor) 
+0

'autor' 레코드와'id_autor' 값이'A7'입니까? 레코드는'autor'에 있어야만'pseudo_id' 필드의 다른 레코드에 할당 할 수 있습니다. – Linger

+0

답변 해 주셔서 감사합니다. Linger. 참으로 내 잘못이야. 먼저 그 기록을 만들어야했습니다! –

1

을 나는 다시 기본 키에 대한 참조를 원한다고 생각 :

CREATE TABLE autor (
    id_autor VARCHAR (2), 
    nom_autor VARCHAR (30), 
    rfc_autor VARCHAR (15), 
    pseudo_id VARCHAR (2), 
    PRIMARY KEY (id_autor), 
    FOREIGN KEY (pseudo_id) REFERENCES autor(id_autor) 
---------------------------------------------^ 
); 

SQL Fiddle에서 작동합니다.