CREATE TABLE Emp OF Emp_t(eno PRIMARY KEY, edept REFERENCES Dept);
在PRIMARY KEY附近,它将显示语法错误,因为预期不为null。我需要解决它。
以下是该架构中的其余查询。
CREATE TYPE Emp_t AS OBJECT(eno number(4),ename varchar2(15),edept ref dept_t,salary number(8,2));
/
CREATE TYPE Dept_t AS OBJECT(dno number(2),dname varchar2(12),mgr ref emp_t);
/
CREATE TYPE Proj_t AS OBJECT(pno number(4),pname varchar2(15),pdept ref dept_t,budget number(10,2));
/
CREATE TABLE Dept OF Dept_t(dno PRIMARY KEY, mgr REFERENCES Emp);
CREATE TABLE Proj OF Proj_t(pno PRIMARY KEY, pdept REFERENCES dept);
答案 0 :(得分:0)
正如@LostInAlabama建议的那样,您可以创建表格并在之后添加循环约束:
ALTER TABLE Dept ADD (CONSTRAINT Dept_FK_Emp FOREIGN KEY (mgr) REFERENCES Emp);
ALTER TABLE Emp ADD (CONSTRAINT Emp_FK_Dept FOREIGN KEY (edept) REFERENCES Dept);
ALTER TABLE Proj ADD (CONSTRAINT Proj_FK_Dept FOREIGN KEY (pdept) REFERENCES Dept);
或最好使用命名约束:
+=