我有一张员工表:
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)