【发布时间】:2013-01-30 03:46:35
【问题描述】:
我有一张员工表:
create table employee
(number integer primary key,
name varchar(20),
salary integer,
manager integer,
birthyear integer,
startyear integer);
manager 列是员工经理的员工编号,即几行看起来像这样:
number | name | salary | manager | birthyear | startyear |
32 | Smythe, Carol | 9050 | 199 | 1929 | 1967 |
33 | Hayes, Evelyn | 10100 | 199 | 1931 | 1963 |
35 | Evans, Michael | 5000 | 32 | 1952 | 1974 |
澄清一下,Michael Evans 的经理是 Carol Smythe。还有两件事,该表上没有外键约束,并且 manager 列中有几个 NULL 值。 现在,我想创建一个包含所有经理的经理表。我会做这样的事情;
create table Mgr(
Mgr_id INTEGER PRIMARY KEY,
bonus INTEGER,
FOREIGN KEY (Mgr_id) REFERENCES employee(manager));
但是;这不起作用,我得到一个错误。有人可以解释为什么吗?已搜索答案,但找不到任何好的解释。提前致谢。
错误:
ERROR 1005 (HY0000): Can´t create table johnson.mgr (errno: 150)
【问题讨论】:
-
错误说明了什么?
-
哦,对不起。忘记补充了。它说:
-
错误 1005 (HY0000): 无法创建表 johnson.mgr (errno: 150)
-
johnson.mgr 是什么?尝试使用 [dbo].mgr
-
我的数据库被称为 johnson,所以我假设该表获得了 johnson.mgr 或其他位置。
标签: mysql foreign-keys