2016-07-30 53 views
1

ALL,MySQL中創建FOREIGN KEY

[email protected] ~ $ isql myodbc-5.2-test root wasqra 
+---------------------------------------+ 
| Connected!       | 
|          | 
| sql-statement       | 
| help [tablename]      | 
| quit         | 
|          | 
+---------------------------------------+ 
SQL> use draft; 
SQLRowCount returns 0 
SQL> ALTER TABLE owners ADD FOREIGN KEY id REFERENCES leagues(id); 
[ISQL]ERROR: Could not SQLExecute 
SQL> 

我在做什麼錯?

此外,出於某種原因,創建表時,我無法通過mySQL-Workbench創建外鍵。

沒有「添加」按鈕或「+」號來添加此約束。對右鍵沒有反應。

有人能請我指出正確的方向嗎? 我在Gentoo Linux上安裝了Workbench 6.3.4.0版本。

SQL> show tables; 
+-----------------------------------------------------------------+ 
| Tables_in_draft             | 
+-----------------------------------------------------------------+ 
| leagues               | 
| owners               | 
+-----------------------------------------------------------------+ 
SQLRowCount returns 2 
2 rows fetched 
SQL> SELECT * FROM leagues; 
+-----------+-----------------------------------------------------------------------------------------------------+-----------+------------+-----------+-----------+-----------+-------------+ 
| id  | name                        | drafttype | scoringtype| roundvalue| leaguetype| salary | benchplayers| 
+-----------+-----------------------------------------------------------------------------------------------------+-----------+------------+-----------+-----------+-----------+-------------+ 
+-----------+-----------------------------------------------------------------------------------------------------+-----------+------------+-----------+-----------+-----------+-------------+ 
+0

什麼其他的表是什麼樣子?兩個表。 – johnny

回答

2

好像你正在使用的ID作爲外鍵使用適當的立柱,而不是

ALTER TABLE owners 
ADD COLUMN FOREIGNID INT NOT NULL; 

ALTER TABLE owners 
ADD FOREIGN KEY (FOREIGNID) REFERENCES leagues(ID); 
+0

謝謝。顯然我錯過了parentesis。 – Igor