問題描述
雲資料庫RDS MySQL版是支援外鍵約束的,但在建立外鍵約束時提示如下錯誤。
Cannot add foreign key constraint問題原因
要關聯的欄位在要關聯的表中不是主鍵。
解決方案
此處以tstudent表和tscore表為例說明如何解決此問題。
執行如下SQL語句,查看
tstudent表結構,判斷要關聯的欄位在要關聯的表中是不是主鍵。
show create table tstudent;系統顯示類似如下,確認tstudent表沒有主鍵。

執行如下SQL語句,確認
tscore表結構正常。
show create table tscore;系統顯示類似如下。

執行如下SQL語句,為
tstudent表添加主鍵。
alter table tstudent add primary key(sno);執行如下SQL語句,建立外鍵約束即可成功。
alter table tscore add constraint fk_tscore_sno foreign key(sno) references tstudent(sno);適用於
雲資料庫RDS MySQL版