【发布时间】:2020-07-16 22:48:45
【问题描述】:
昨晚我在这段代码上得到了一些帮助,但现在我遇到了另一个错误。我的教授仍然没有回答我,所以我来找你们。代码如下:
--创建志愿者主管
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 CCPHPersonID_FK FOREIGN KEY (PH_Person_ID) References Physician (PH_Person_ID),
CONSTRAINT CCEMPersonID_FK FOREIGN KEY (EM_Person_ID) References Employee (EM_Person_ID),
CONSTRAINT CCVOPersonID_FK FOREIGN KEY (VO_Person_ID) References Volunteer (VO_Person_ID),
CONSTRAINT CCPWorkUnitID_PK FOREIGN KEY (PWork_Unit_ID) References Work_Unit (PWork_Unit_ID)
);
现在我更改了名称,但仍然出现此错误:
错误报告-
ORA-00955: 名称已被现有对象使用
- 00000 - “名称已被现有对象使用” *原因:
*行动:
我错过了什么?
【问题讨论】:
-
看起来约束仍然存在于之前创建该表的尝试中。在您尝试再次创建它之前,预先删除与该表相关的所有内容。或使用“CREATE OR REPLACE”语法。
-
@CeeMcSharpface 所以删除所有内容并将“创建表”替换为“替换表”?
-
对不起。查了一下。
DROP TABLE,CREATE TABLE,ALTER TABLE。 community.oracle.com/thread/944108?start=0&tstart=0 -
在 oracle 中没有“替换表”,甚至没有“创建或替换表”。如果删除表,所有约束也将被删除。所以只要确保你真的放弃了它。
-
如果您确定该表尚不存在,请检查约束。约束名称在您的模式中必须是唯一的,表名也是如此;也许您有另一个使用相同约束名称的表?尝试使用防止潜在冲突的命名方案。