2016-11-10 34 views
0
CREATE TABLE Gruppelærer(
    brnavn VARCHAR(8), 
    emnekode VARCHAR(8), 
    år INT, 
    vh CHAR(4), 
    antallgr INT, 
    CONSTRAINT larer_id PRIMARY KEY(brnavn, emnekode, år, vh) 
); 

CREATE TABLE Søknad(
    brnavn VARCHAR(8), 
    emnekode char(4), 
    år VARCHAR(8), 
    vh INT, 
    antallgr INT, 
    prioritet INT, 
    FOREIGN KEY (brnavn, emnekode, år, vh, antallgr) REFERENCES Gruppelærer(brnavn, emnekode, år, vh, antallgr), 
    UNIQUE (brnavn, emnekode, år, vh, prioritet) 
); 

錯誤:錯誤:沒有唯一約束匹配給定鍵引用表「果」

There is no unique constraint matching given keys for referenced table "fruit"

爲什麼這個不行?

+2

因爲你的3列FK試圖引用一個4列-PK。 – dnoeth

+0

你指的是哪一列? –

+2

除了'vh'列,還有一個問題是您的數據類型嚴重不匹配。 'fruitid'是'InStore'中的'int',而'fruit'表中是'varchar(8)'。 –

回答

0

要麼,你需要從PRIMARY_KEY刪除[vh]字段或將其添加在FOREIGN_KEY

CREATE TABLE fruit(
    fruitname VARCHAR(128), 
    fruitid VARCHAR(8) NOT NULL, 
    yearplanted INT, 
    vh CHAR(4), 
    numberoffruits INT, 
    CONSTRAINT fruit_id PRIMARY KEY(fruitname, fruitid, yearplanted, vh) 
); 

CREATE TABLE InStore(
    fruitname VARCHAR(8), 
    fruitid INT, 
    yearplanted CHAR(4), 
    quantity INT, 
    FOREIGN KEY (fruitname, fruitid, yearplanted, vh) REFERENCES fruit(fruitname, fruitid, yearplanted, vh), 
    UNIQUE (fruitname, fruitid, yearplanted, quantity, vh) 
); 
+0

這是實際的表 CREATE TABLEGruppelærer( brnavn VARCHAR(8), emnekode VARCHAR(8), AR INT, VH CHAR(4), antallgr INT, 約束larer_id PRIMARY KEY(brnavn,emnekode, år,vh) ); CREATE TABLESøknad( brnavn VARCHAR(8), emnekode炭(4), AR VARCHAR(8), VH INT, antallgr INT, prioritet INT, 外鍵(brnavn,emnekode,AR,VH ,antallgr)參考文獻:gruppelærer(brnavn,emnekode,år,vh,antallgr), UNIQUE(brnavn,emnekode,år,vh,prioritet) ); 即使我將給定的代碼實現到文件中,它也無法使其工作。 –

+1

@Dankmeme:在問題中發佈上述代碼而不是評論 –

相關問題