如何創建具有循環引用的多個表格。我有這個數據,我想創建在一個鏡頭:使用循環引用創建表格
DROP TABLE employee CASCADE CONSTRAINTS;
CREATE TABLE employee (
fname varchar2(15) not null,
minit varchar2(1),
lname varchar2(15) not null,
ssn char(9),
bdate date,
address varchar2(30),
sex char,
salary number(10,2),
superssn char(9),
dno number(4),
primary key (ssn),
foreign key (superssn) references employee(ssn),
foreign key (dno) references department(dnumber)
);
DROP TABLE department CASCADE CONSTRAINTS;
CREATE TABLE department (
dname varchar2(15) not null,
dnumber number(4),
mgrssn char(9) not null,
mgrstartdate date,
primary key (dnumber),
unique (dname),
foreign key (mgrssn) references employee(ssn)
);
DROP TABLE dept_locations CASCADE CONSTRAINTS;
CREATE TABLE dept_locations (
dnumber number(4),
dlocation varchar2(15),
primary key (dnumber,dlocation),
foreign key (dnumber) references department(dnumber)
);
DROP TABLE project CASCADE CONSTRAINTS;
CREATE TABLE project (
pname varchar2(15) not null,
pnumber number(4),
plocation varchar2(15),
dnum number(4) not null,
primary key (pnumber),
unique (pname),
foreign key (dnum) references department(dnumber)
);
DROP TABLE works_on CASCADE CONSTRAINTS;
CREATE TABLE works_on (
essn char(9),
pno number(4),
hours number(4,1),
primary key (essn,pno),
foreign key (essn) references employee(ssn),
foreign key (pno) references project(pnumber)
);
DROP TABLE dependent CASCADE CONSTRAINTS;
CREATE TABLE dependent (
essn char(9),
dependent_name varchar2(15),
sex char,
bdate date,
relationship varchar2(8),
primary key (essn,dependent_name),
foreign key (essn) references employee(ssn)
);
請幫助!
你有什麼理由不能運行它?你是否收到錯誤代碼? –
不知道是誰投票結束這個問題而不留言,但我認爲這是個好問題。您可能想重新考慮department.mgrssn上的非空限制。如果一個經理離開,他是否100%地被替換掉了?否則,您的數據模型不支持業務需求。 –
@DavidStarkey,代碼不會運行,因爲員工和部門表互相引用。 –