2012-07-26 85 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字段進行部署。

相關問題