每当我尝试删除表或创建表时,它都会显示以下错误:
DROP TABLE SUBURB;
DROP TABLE STOCKITEM;
DROP TABLE MANUFACTURER;
DROP TABLE WAREHOUSE;
DROP TABLE CITY;
DROP TABLE STATE;
第 1 行错误:ORA-02449:引用的表中的唯一/主键
通过外键
CREATE TABLE STATE (
statecode varchar(3)
,statename varchar(30)
,population number(8)
,primary key(statecode)
);
第 1 行错误:ORA-00955:名称已被现有对象使用
有人能解释为什么会发生这种情况吗?
如果您确实确定要删除该表,即使它在外键中被引用,您也可以像这样强制它:
drop table state cascade constraints;
该语法定义于Oracle SQL 参考.
请注意,这会删除所有外键关系。因此,在重建表(及其主键)后,您需要重新创建它们。通常这是可以的,因为最常见的用例是在开发或 CI 环境中废弃并重新创建模式。
我们可以用cascade constraints
使我们的构建脚本更易于维护。有两种选择:
- 在删除外键约束之前显式删除外键约束
表,使用脚本或动态 SQL。
- 订购 DROP
TABLE 语句,以便首先删除依赖表
与他们讨厌的外键。对于几张桌子来说足够简单,
对于大的模式来说更加痛苦。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)