2017-06-19 29 views
1

我不知道什麼是這個代碼的問題做...我覈實了所有的列名和數據類型,但這個不行SQL - 外鍵約束的格式不正確

CREATE TABLE empleado (
    tipo_dni VARCHAR(50) NOT NULL, 
    nro_dni INT NOT NULL, 
    nombre VARCHAR(50) NOT NULL, 
    apellido VARCHAR(50) NOT NULL, 
    direccion VARCHAR(50) NOT NULL, 
    telefono INT NOT NULL, 
    id_ciudad INT NOT NULL, 
    PRIMARY KEY (tipo_dni , nro_dni) 
); 

CREATE TABLE director (
    tipo_dni VARCHAR(50) NOT NULL, 
    nro_dni INT NOT NULL, 
    PRIMARY KEY (tipo_dni, nro_dni), 
    FOREIGN KEY (tipo_dni) 
     REFERENCES empleado (tipo_dni), 
    FOREIGN KEY (nro_dni) 
     REFERENCES empleado (nro_dni) 
); 

ERROR

#1005 - Can't create table `tpfinal`.`director` (errno: 150 "Foreign key constraint is incorrectly formed") 

有什麼想法?

+0

什麼是你所得到的確切的錯誤信息? –

+0

我的錯誤是在導演表中。 #1005 - 無法創建表'tpfinal'.'director'(錯誤:150「外鍵約束不正確」)(詳細信息...) –

回答

2

你的主鍵是:

PRIMARY KEY (tipo_dni , nro_dni) 

這是一個複合主鍵。外鍵引用應該是複合材料,以及:

FOREIGN KEY (tipo_dni, nro_dni) 
    REFERENCES empleado (tipo_dni, nro_dni) 
+0

好的,這對我來說非常合適。所以......當一個複合主鍵我的外鍵應該被聲明如何一個複合外鍵。 –