2012-07-26 89 views
0

我想让这两个表之间的关系,我已经创建了两个表:emp和部门,如下图所示,如何使SQL两个表之间的关系

create table emp (
    empno number(4) constraint empnopk primary key, 
    ename varchar(10) constraint enamenn not null, 
    mgrno number(4) constraint mgrnofk references emp(empno), 
    sal number(10) constraint salck check(sal between 2000 and 5000), 
    age number(2) constraint ageck check(age>20), 
    mobno number(10) constraint mobuq unique 
); 

create table dept (
    deptno number(10) constraint deptnopk primary key, 
    dname varchar(10) constraint dnamenn not null, 
    loc varchar(10) default 'xyz' 
); 

为EMP表主表和dept表的子表,使这两个表我已经给查询之间的关系

alter table emp 
add constraint deptnofk foreign key(deptno) references dept(deptno); 

当我给这个查询它显示ORA-00904:“DEPTNO”:无效的标识符

什么可能问题?

+0

确保您的要求是正确的。一个人可以在一个以上的部门吗?在一些公司,经理可能会管理两个部门。而且,有时员工可以为两个不同的部门兼职工作。 – 2012-07-26 01:52:21

回答

5

您的emp表没有deptno字段。添加这个数字(10),它应该更好地工作。

+0

雅是最后一个查询我给了alter table emp并将deptno添加到它.. – 2012-07-26 01:56:46

+0

最后一个查询不添加deptno列,它只尝试添加外键约束。它仅指定列,以便外键约束知道如何建立关系。该列必须在创建外键之前存在。 – 2012-07-26 02:41:53

3

您需要在您的emp表中添加deptno字段,因为您正在从表emp创建一个外键以通过droptno字段进行部署。

相关问题