2012-09-10 70 views
1

這裏是我的腳本:錯誤的SQL語法創建時,簡單的外鍵參考

create table Country 
(
CountryId int primary key, 
Name varchar(255) 
); 

create table Person 
(
PersonId int primary key, 
Name varchar(255), 
FOREIGN KEY (CountryId) references Country(CountryId) 
); 

我從MS SQL轉換並試圖獲得MySQL的把握,並與有關人士的典型我的Hello World出發>國家關係,以獲得外鍵的感覺。

我得到上的phpMyAdmin此錯誤:

SQL查詢:

CREATE TABLE人(

PERSONID INT PRIMARY KEY,名稱VARCHAR(255),外鍵( CountryId )參考國家(CountryId));

MySQL表示:

1072 - 鍵列 'CountryId' 不表

什麼新手的錯誤存在我在這裏做?

+0

你在我回答後改變了問題!新的錯誤是由於您的第二張表沒有'CountryId'字段。 –

+0

@MattHumphrey:所以我必須在另一行中明確聲明該字段? – sergserg

回答

2

這是因爲您還沒有在外部關鍵字中創建Person中的列,因此Key column 'CountryId' doesn't exist in table。下面是你如何做到這一點:

CREATE TABLE Person(
    PersonId INT PRIMARY KEY , 
    Name VARCHAR(255) , 
    CountryId int, 
    FOREIGN KEY (CountryId) REFERENCES Country(CountryId) 
); 
+0

我可以在與MSSQL類似的同一行上寫入創建和外鍵綁定嗎? – sergserg

+0

不是我所知道的。但你可以在這裏研究:http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html –