2011-11-09 76 views
1

我有以下代碼:如何在訪問中創建外鍵?

CREATE TABLE Faculty (
FacSSN text(9) primary key, 
FacFirstName Text(30) null, 
FacLastName Text(50) null, 
FacCity text(50) null, 
FacState text(2) null, 
FacDept text (6) null, 
FacRank text(6) null, 
FacSalary currency null, 
FacSupervisor text(9) null, 
FacHireDate datetime null, 
facZipCode text(9) null, 
offerNo text(6) , 

FOREIGN KEY offerNo REFERENCES ClassOffering (OfferNo) 

); 

我有所謂的用「OfferNo」在它已經創建ClassOffering另一個表。我需要在上面的表中創建一個與「鏈接」到ClassOffering的外鍵。我正在使用Access。

+0

布蘭登,請張貼你上一個問題的ClassOffering表。您的問題在我的答案中解決了需要匹配的數據類型。 –

+0

上表是班級註冊。 – Brandon

+0

現在我覺得很愚蠢,我試圖確定它們在我發佈這個假設之前是一樣的......在任何一種情況下,桌子都會讓我自己或其他人幫助你。 –

回答

1

布蘭登,當數據類型forign keys需要匹配並從以前的問題ClassOffering表有offerNo INTEGER定義爲text(6)

您將不能創建一個外鍵與offerNo。更改text(6)INTEGER匹配,和外鍵將工作

你需要把括號列offerNo周圍,像這樣:

FOREIGN KEY (offerNo) REFERENCES ClassOffering (OfferNo) 
+0

我已將OfferNo更改爲一個int以匹配我的表的其餘部分,但是在運行查詢時,我收到「約束條件子句中的語法錯誤」錯誤。就我個人而言,我看不出該條款的任何錯誤。 – Brandon

+0

我已經更新了我的答案,使語法的所需圓括號正確。 –

+0

是的,我在大約30秒前意識到這一點,只是刷新自己張貼。完全正確並允許查詢運行。謝謝! – Brandon

0

注意,你可以聲明FOREIGN KEY在線即

CREATE TABLE Faculty (
FacSSN text(9) primary key, 
FacFirstName Text(30) null, 
FacLastName Text(50) null, 
FacCity text(50) null, 
FacState text(2) null, 
FacDept text (6) null, 
FacRank text(6) null, 
FacSalary currency null, 
FacSupervisor text(9) null, 
FacHireDate datetime null, 
facZipCode text(9) null, 
offerNo integer null REFERENCES ClassOffering (OfferNo) 
);