我不知道SQL爲什麼不能用於Class表。我知道這個問題與外鍵關係有關,如果我刪除表格將被創建。我的語法有什麼問題嗎?用外鍵創建表的SQL語句不正確?
我收到的錯誤是:錯誤代碼:1005無法創建表 'university.class'(錯誤:150)
CREATE TABLE Faculty (
facId VARCHAR(6),
name VARCHAR(20) NOT NULL,
department VARCHAR(20),
rank VARCHAR(10),
CONSTRAINT Faculty_facId_pk PRIMARY KEY (facId));
DROP TABLE Class;
CREATE TABLE Class (
classNumber VARCHAR(8),
facId VARCHAR(6) NOT NULL,
schedule VARCHAR(8),
room VARCHAR(6),
CONSTRAINT Class_classNumber_pk PRIMARY KEY (classNumber),
CONSTRAINT Class_facId_fk FOREIGN KEY (facId) REFERENCES Faculty (facId) ON DELETE SET NULL,
CONSTRAINT Class_schedule_room_uk UNIQUE (schedule, room));
表中的教職員工是否實際創建了?我不使用mySql,但其他數據庫引擎不允許使用可空的主鍵列。即使mySql允許它,這似乎是一個非常糟糕的主意。 –
@DanBracuk - 主鍵不能爲空。 –
是的教師表創建。 – LF4