當我執行以下查詢時出現上述錯誤。#1005 - 無法創建表'hms.doctor'(errno:150)
CREATE TABLE doctor
(
id varchar(6) NOT NULL,
Specialization varchar(15) NOT NULL,
FOREIGN KEY(id) REFERENCES employee(id)
on delete cascade on update cascade
);
問題在哪裏?
當我執行以下查詢時出現上述錯誤。#1005 - 無法創建表'hms.doctor'(errno:150)
CREATE TABLE doctor
(
id varchar(6) NOT NULL,
Specialization varchar(15) NOT NULL,
FOREIGN KEY(id) REFERENCES employee(id)
on delete cascade on update cascade
);
問題在哪裏?
您需要索引employee(id)
,然後再添加任何指向它的FK。你還需要一個doctor(id)
。在這兩種情況下,主鍵似乎都是一個不錯的選擇。
不要忘記,在CREATE TABLE
腳本中,PRIMARY KEY
應出現在FOREIGN KEY
指令之前。
看到這個職位的快速操作方法:How to add a primary key to a MySQL table?
以及我該怎麼做 – user2828552
或者'doctor.id,employee.id'的數據類型可能不匹配。如果沒有看到'CREATE TABLE employee(...)' –
好'id'看起來好像是主鍵,所以我想你可以在表中添加一個。 – Sebas
你不包括''
在實際的查詢,是嗎? – David