2014-10-02 71 views
0

我是MySQL的新手,並且正在爲我創建的數據庫搞一些學習。MySQL CONSTRAINT FOREIGN KEY語法

我創造了我的第一個表和它的工作確定:

mysql> CREATE TABLE Pizzas(ItemID INTEGER PRIMARY KEY, Size INTEGER, Price DECIMAL); 
Query OK, 0 rows affected (0.90 sec) 

然後我試圖創建使用約束的另一個表(我只是照搬國外的鍵是在一類我正在創建的方式),我出現錯誤:

mysql> CREATE TABLE Customers(CustomerID PRIMARY KEY, Name CHAR(20), ItemID INTEGER, CONSTRAINT FOREIGN KEY (ItemID) REFERENCES Pizzas (ItemID)); 

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PRIMARY KEY, Name CHAR(20), ItemID INTEGER, CONSTRAINT FOREIGN KEY (ItemID) REFE' at line 1 

我使用的是Linux計算機,而我的MySQL版本是5.5。爲什麼我會遇到這個問題?

+1

對於CustomerID,您沒有數據類型(例如'INTEGER')。另外,還有一些建議:'Name(')'使用'VARCHAR(20)'而不是'CHAR(20)',因爲'CHAR(20)'會在末尾填充空格。你不會看到他們,但他們會在那裏,他們會把你搞砸。 – 2014-10-02 18:44:17

回答

2

您的表格定義不正確。您在CustomerID PRIMARY KEY中缺少datatype。它應該是

CREATE TABLE Customers(CustomerID int not null PRIMARY KEY, 
            <-- Here 
Name CHAR(20), ItemID INTEGER, 
CONSTRAINT FOREIGN KEY (ItemID) REFERENCES Pizzas (ItemID)); 
+0

啊,非常感謝你。 Idk我錯過了那個! – darnellW 2014-10-03 03:28:55