2014-01-20 2 views
0

다른 테이블을 참조하는 열이있는 테이블을 만들려고합니다. 외래 키는 어떻게 만듭니 까?상호 연결 테이블을 만들 수 없습니다.

계획 : enter image description here

쿼리 : (작동하지 않는) :

CREATE TABLE gebruikers_trainingen (
    gebruiker_id INT UNSIGNED NOT NULL, 
    training_id INT UNSIGNED NOT NULL, 
    gebruiker_naam VARCHAR(255) NOT NULL, 
    training_naam VARCHAR(255), 

    CONSTRAINT fk_idGebruiker FOREIGN KEY (gebruiker_id) 
    REFERENCES gebruikers(id), 
    CONSTRAINT fk_idTraining FOREIGN KEY (training_id) 
    REFERENCES trainingen(id), 
    CONSTRAINT fk_naamGebruiker FOREIGN KEY (gebruiker_naam) 
    REFERENCES gebruikers(voornaam), 
    CONSTRAINT fk_naamTraining FOREIGN KEY (training_naam) 
    REFERENCES trainingen(naam) 
) ENGINE = INNODB; 

은 방법 :

오류 코드 : 1005 표를 만들 수 없습니다 'konecranes.gebruikers_trainingen' 을 (errno : 150)

편집 : 다른 테이블의 쿼리.

CREATE TABLE gebruikers (
    id int unsigned NOT NULL, 
    voornaam varchar(255) NOT NULL, 
    achternaam varchar(255) NOT NULL, 
    account_level int unsigned NOT NULL, 
    PRIMARY KEY (id, voornaam) 
) ENGINE = InnoDB; 

CREATE TABLE trainingen (
    id int unsigned NOT NULL, 
    naam varchar(255) NOT NULL, 
    PRIMARY KEY (id, naam) 
) ENGINE = InnoDB; 

답변

1

당신은 당신의 외래 키에 인덱스를 추가해야합니다 그것을 해결 한 다음

CREATE TABLE gebruikers_trainingen (
    gebruiker_id INT UNSIGNED NOT NULL, 
    training_id INT UNSIGNED NOT NULL, 
    gebruiker_naam VARCHAR(255) NOT NULL, 
    training_naam VARCHAR(255) NOT NULL, 

    INDEX (gebruiker_id, gebruiker_naam), 
    INDEX (training_id, training_naam), 

    CONSTRAINT fk_idGebruiker FOREIGN KEY (gebruiker_id, gebruiker_naam) 
    REFERENCES gebruikers(id, voornaam), 

    CONSTRAINT fk_idTraining FOREIGN KEY (training_id, training_naam) 
    REFERENCES trainingen(id, naam) 
) ENGINE = INNODB; 
+0

죄송합니다 전에 존재하지 않은,이 :-( – Taerus

+0

, 슬프게도 내 편집 코드 –

+0

로 여전히 성공을 시도주세요 그것을 해결하지 않은이 외래 키가 고통입니다. 아직 – Taerus

0

는 제약 조건을 병합. 또한 저스틴 루먼 (Justin Lurman)이 나를 도와 주심에 감사 드리며 Indexes도 추가해야했습니다.

CONSTRAINT fk_gebruikers FOREIGN KEY (gebruiker_id, gebruiker_naam) REFERENCES gebruikers(id, voornaam), 
CONSTRAINT fk_trainingen FOREIGN KEY (training_id, training_naam) REFERENCES trainingen(id, naam) 
관련 문제