2017-01-29 59 views
0

enter image description here我對我的兩個表有問題。一張桌子的名字是tblShoes,另一張是tblplayer。問題是我想將表tblPLAYERS中的列代碼設置爲FOREIGN KEY,並引用表tblSHOES列代碼。但我試圖插入我的代碼在表tblPLAYER但它不起作用,你可以幫我解釋爲什麼請。 這是我的兩張桌子。將列代碼設置爲表中的外鍵,並引用另一個表

創建表tbl_Shoe

代碼VARCHAR非空主鍵, 品牌VARCHAR不爲空, 模型INT不爲空, 大小VARCHAR不爲空

);

創建表tbl_PLAYER

RosterNo int主鍵, 名稱VARCHAR, 位置VARCHAR, 代碼爲varchar

主鍵(代碼), 外鍵(代碼)引用tblShoe (code)

);

請幫助我!你對我非常有幫助。非常感謝。 這是我的代碼 http.clickimage

+0

你只需要創建一個外鍵的語法? – Xedni

+0

你的意思是*它不起作用*?你有什麼錯誤嗎? –

+0

@prdp當我嘗試像這樣執行tblPLAYER時發生錯誤'無法爲表'tblPLAYER'添加多個PRIMARY KEY約束「 – Sharkweb

回答

0

外鍵是對另一個表的引用。它用於建立表格之間的關係。例如,tbl_Shoe和tbl_PLAYER表之間的關係。一個tbl_Shoe可以有多個代碼。 tbl_Shoe的主鍵變成了另一個表tbl_PLAYER.so的代碼的外鍵,這裏是我的答案。

create table tbl_Shoes 

Codes varchar (20) not null primary key, brand varchar(50) not null, model int not null, size varchar(10) not null );

create table tbl_PLAYERS 

( RosterNo int primary key, Name varchar(20) , Position varchar(20), code varchar (20) not null, Codes varchar (20) not null constraint fk_code foreign key references tblShoes(Codes) );

0

當你定義一個外鍵,你說「嘿數據庫,保證這個值存在於另一個表」。在你的情況中,你說的是,無論你在tblPlayer.Code列中輸入什麼值,都需要在tblShoe中具有相同值的匹配行。例如,如果我只有tblShoe中的代碼A,B和C,並且嘗試向代碼爲D的tblPlayer中插入一行,它將不起作用。

+0

感謝您回答您的問題。所以它就是tblPLAYER的代碼,並且tblSHOES必須是相同的值。 – Sharkweb

+0

具體來說,代碼必須存在於'tblShoes'中,然後'tblPlayer'中的任何行都可以引用它。 –

相關問題