【问题标题】:How to make relation between two tables in sql如何在sql中建立两个表之间的关系
【发布时间】:2023-03-29 19:42:01
【问题描述】:

我想在这两个表之间建立关系,我创建了两个表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": invalid identifier

可能是什么问题?

【问题讨论】:

  • 确保您的要求是正确的。一个人可以在多个部门工作吗?在一些公司中,一个经理可能管理两个部门。而且,有时员工可以在两个不同的部门兼职。

标签: sql oracle11g


【解决方案1】:

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

【讨论】:

  • 最后一个查询没有添加deptno列,它只是尝试添加外键约束。它仅指定列,以便外键约束知道如何建立关系。该列必须在创建外键之前存在。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多