我需要创建这两个表:
CREATE TABLE Volunteer_Assigned_Care_Center
(
VO_Person_ID Number(10) NOT NULL,
Care_Center_ID Number(5) NOT NULL,
CONSTRAINT CVOPersonID_PK PRIMARY KEY (CVO_Person_ID) References Volunteer (VO_Person_ID),
CONSTRAINT CareCenterID_FK FOREIGN KEY (Care_Center_ID) References Care_Center(Care_Center_ID)
);
和
CREATE TABLE Volunteer_Supervisor
(
PH_Person_ID Number(10) NOT NULL,
EM_Person_ID Number(10) NOT NULL,
VO_Person_ID Number(10) NOT NULL,
End_Date Date NOT NULL,
Begin_Date Date NOT NULL,
Hours_Worked Number(4) NULL,
PWork_Unit_ID Number(4) NULL,
CONSTRAINT PHPersonID_FK FOREIGN KEY (PH_Person_ID) References Physician (PH_Person_ID),
CONSTRAINT EMPersonID_FK FOREIGN KEY (EM_Person_ID) References Employee (EM_Person_ID),
CONSTRAINT VOPersonID_FK FOREIGN KEY (VO_Person_ID) References Volunteer (VO_Person_ID),
CONSTRAINT PWorkUnitID_PK PRIMARY KEY (PWork_Unit_ID) References Work_Unit (PWork_Unit_ID)
);
我得到了这个错误:
错误报告-
ORA-00907:缺少右括号
00907。00000-"缺少右括号">
*原因:
*Action:
您的问题是,用于声明PRIMARY KEY
的语法是FOREIGN KEY
语法。如果您希望这些列也是表的PRIMARY KEY
,则需要在其他地方声明它们,例如在列定义中:
CREATE TABLE Volunteer_Assigned_Care_Center
(
VO_Person_ID Number(10) NOT NULL PRIMARY KEY,
Care_Center_ID Number(5) NOT NULL,
CONSTRAINT CVOPersonID_PK FOREIGN KEY (VO_Person_ID) References Volunteer (VO_Person_ID),
CONSTRAINT CareCenterID_FK FOREIGN KEY (Care_Center_ID) References Care_Center(Care_Center_ID)
);
或者带有PRIMARY KEY
子句:
CREATE TABLE Volunteer_Supervisor
(
PH_Person_ID Number(10) NOT NULL,
EM_Person_ID Number(10) NOT NULL,
VO_Person_ID Number(10) NOT NULL,
End_Date Date NOT NULL,
Begin_Date Date NOT NULL,
Hours_Worked Number(4) NULL,
PWork_Unit_ID Number(4) NULL,
PRIMARY KEY (PWork_Unit_ID),
CONSTRAINT PHPersonID_FK FOREIGN KEY (PH_Person_ID) References Physician (PH_Person_ID),
CONSTRAINT EMPersonID_FK FOREIGN KEY (EM_Person_ID) References Employee (EM_Person_ID),
CONSTRAINT VOPersonID_FK FOREIGN KEY (VO_Person_ID) References Volunteer (VO_Person_ID),
CONSTRAINT PWorkUnitID_PK FOREIGN KEY (PWork_Unit_ID) References Work_Unit (PWork_Unit_ID)
);