2016-07-30 54 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