表结构如下
create table EMPLOYEESfk
(
EMPLOYEE_ID NUMBER(6),
FIRST_NAME VARCHAR2(20),
LAST_NAME VARCHAR2(25),
ENGLISH VARCHAR2(25),
PHONE_NUMBER VARCHAR2(20),
HIRE_DATE DATE,
JOB_ID VARCHAR2(10),
SALARY NUMBER(8,2),
COMMISSION_PCT NUMBER(2,2),
MANAGER_ID NUMBER(6),
DEPARTMENT_ID NUMBER(4)
)
--在EMPLOYEESfk表中增加主键列(EMPLOYEE_ID)
alter table EMPLOYEESfk
add constraints pk_EMPLOYEESfk_EMPLOYEE_ID primary key(EMPLOYEE_ID)
--分析
--一个表的两个字段之间
--在子表上增加外键 那么员工表和管理者表哪个是主表,哪个是子标呢,当时我很自信的说员工表是主表,可事实上员工 表是子表,这时才注意到问题是哪个是主表,自己以为哪个是主键,EMPLOYEE_ID为主键,自以为很简单的问题,随口一说就错了,看来人还真是需要谦虚,也许自认为对与主外键自己理解的不错的缘故吧。想起了"关羽大意失荆州",当然自不敢比关羽,但一定要以此为戒。同样的错误不要犯第二次。谦虚,谦虚,谦虚!
员工表 ---子表
管理者表 ---主表
alter table EMPLOYEESfk
add constraints fk_EMPLOYEESfk_EMPLOYEE_ID foreign key(MANAGER_ID) references EMPLOYEESfk(EMPLOYEE_ID)