如何在sql中建立两个表之间的关系

时间:2012-07-26 01:42:07

标签: sql oracle11g

我想在这两个表之间建立关系,我创建了两个表emp和dept,如下所示,

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”:无效的标识符

可能是什么问题?

2 个答案:

答案 0 :(得分:5)

您的emp表没有deptno字段。将其添加为数字(10),它应该更好。

答案 1 :(得分:3)

您需要在emp表中添加deptno字段,因为您正在从表emp创建一个外键到droptno字段。