2016-11-05 2 views
0

Ich versuche, eine grundlegende Fremdeinschränkung zu erstellen, jedoch erhalte ich einen Syntaxfehler. #1005 - Can't create table 'my_database'.'#sql-334f_952bc' (errno: 150 "Foreign key constraint is incorrectly formed")Fehler (1005) beim Versuch, Fremdschlüssel zu erstellen

Ich erstelle zuerst die Tabellen und dann die Methode 'alter table', um die Fremdbedingung zu erstellen.

Erstellen von Tabellen:

CREATE TABLE `tbl_flights` (
    `flight_id`  int(11)  NOT NULL AUTO_INCREMENT 
    `aircraft_id` int(11)  NOT NULL 
    `date`   date   NOT NULL 
    `auth_by`  varchar(255) NOT NULL 
    `auth_duration` time   NOT NULL 
    PRIMARY KEY (`flight_id`) 
) 
; 

CREATE TABLE `tbl_aircraft` (
    `aircraft_id` int(11) NOT NULL AUTO_INCREMENT 
    `registration` char(6) NOT NULL 
    `insurance`  date NOT NULL 
    `awrc`   date NOT NULL 
    PRIMARY KEY (`aircraft_id`) 
) 
; 

Erstellen von Fremdschlüssel/Einschränkung:

ALTER TABLE `tbl_aircraft` 
ADD CONSTRAINT `fk_aircraft_id` FOREIGN KEY (`aircraft_id`) 
REFERENCES `my_database`.`tbl_flights` (`aircraft_id`) 
ON DELETE RESTRICT ON UPDATE CASCADE ; 

Wenn jemand das Problem identifizieren könnte hier würde ich es sehr zu schätzen.

Antwort

0

Basis in der Fehlermeldung könnte Sie die verpasst werden; am Ende der Anweisung

CREATE TABLE `tbl_flights` (
    `flight_id`  int(11)  NOT NULL AUTO_INCREMENT 
    `aircraft_id` int(11)  NOT NULL 
    `date`   date   NOT NULL 
    `auth_by`  varchar(255) NOT NULL 
    `auth_duration` time   NOT NULL 
    PRIMARY KEY (`flight_id`) 
) 
; /* add this */ 

CREATE TABLE `tbl_aircraft` (
    `aircraft_id` int(11) NOT NULL AUTO_INCREMENT 
    `registration` char(6) NOT NULL 
    `insurance`  date NOT NULL 
    `awrc`   date NOT NULL 
    PRIMARY KEY (`aircraft_id`) 
) 
; /* add this*/ 

könnte die Tabellen

ALTER TABLE `tbl_flights` 
ADD CONSTRAINT `fk_aircraft_id` FOREIGN KEY (`aircraft_id`) 
REFERENCES `my_database`.`tbl_aircraft` (`aircraft_id`) 
ON DELETE RESTRICT ON UPDATE CASCADE ; 

invertiert haben oder Sie müssen eine Fremd Spalte in der Tabelle tbl_aircraft

+0

Vielen Dank, habe ich die 'hinzuzufügen;' und bekomme jetzt einen anderen Fehler: Fehlernummer: 150 "Fremdschlüssel-Constraint ist falsch gebildet" –

+0

Nun, das bedeutet, dass Ihre Fehlermeldung gelöst .. + – scaisEdge

+0

Es gibt immer noch ein Problem. Ich habe die Frage aktualisiert. –

Verwandte Themen