当前位置: 首页 > 面试题库 >

SQL,有关删除级联和有关更新级联

徐友樵
2023-03-14
问题内容

我是SQL新手,遇到了一个奇怪的问题。所以我有两个表OFFERS和SUPPLIER。这是供应商表。

CREATE TABLE  "SUPPLIER" 
   (    "S#" NUMBER, 
    "NAME" VARCHAR2(50),  
    "CITY" VARCHAR2(50), 
     PRIMARY KEY ("S#") ENABLE
   )

这是OFFERS表。

CREATE TABLE  "OFFERS" 
   (    "P#" NUMBER, 
    "S#" NUMBER, 
    "V#" NUMBER, 
    "PR#" NUMBER, 
      CONSTRAINT "PK_OFFERS" PRIMARY KEY ("P#") ENABLE
   )

所以现在,当我尝试像这样向offers表添加外键约束时

ALTER TABLE OFFERS
ADD CONSTRAINT FK_SUPPLIERS FOREIGN KEY(S#)
 REFERENCES SUPPLIER (S#) 
ON DELETE CASCADE
ON UPDATE CASCADE

我收到一条错误消息:“ ORA-01735:无效的ALTER TABLE选项”。如果我删除最后一行,即“ ON UPDATE
CASCADE”,则可以正常工作。那么,我在做什么错呢?我在互联网上看到了很多类似的例子,这些例子本来可以工作,所以我有点困惑。如果有任何区别,我正在apex.oracle.com上工作。


问题答案:

据我所知,Oracle中没有“更新级联”(即使在当前版本中也是如此):

http://asktom.oracle.com/pls/asktom/f?p=100:11:0:::::P11_QUESTION_ID:5773459616034



 类似资料:
  • 问题内容: 我希望UserAcounts可以有许多UserGroups,而所有Groups可以有许多Users。还有一个联接表。我希望在删除useraccount时删除联接表中useraccount和usergroup之间的关系。 实际上,我想使用“在删除级联上”。在ManyToMany关系中,我不会不幸地运行它。我已经尝试了很多事情,但没有找到解决方案。 注意:我只想在删除级联上删除关系 是否有

  • 问题内容: 我试图做一个简单的例子,以学习如何从父表中删除一行并使用Doctrine2自动删除子表中的匹配行。 这是我正在使用的两个实体: Child.php: 父亲.php 这些表已在数据库上正确创建,但未创建“删除级联”选项。我究竟做错了什么? 问题答案: 在教义中有两种级联: 1)ORM级别- 在关联中使用- 这是在UnitOfWork中完成的计算,不影响数据库结构。删除对象时,UnitOf

  • 这就是我在教师实体中所拥有的: 现在我喜欢使用数据库的功能。重复一遍:数据库的删除级联功能只针对Student_Teacher-table! 问题是: 问题是:这很好,但是要触发删除中的条目,我必须在两边指定。Hibernate不解析,只看到,并将目标实体(和引用的学生)从缓存中删除,但它们仍然在数据库中!!!因此,我不得不在空降后彻底清除Hibernate期,重新阅读教师、傅太太、巴尔先生和学生

  • 编辑:修改问题以更好地反映问题。此处最初发布的问题 我有一个父实体(< code >上下文)和一个子实体(< code >用户)。父级上的级联“删除”不会删除子级。代码如下:

  • 问题内容: 我必须缺少SQLAlchemy的层叠选项的琐碎内容,因为我无法获得简单的层叠删除来正确操作-如果删除了父元素,则子对象将使用外键保留。 我在这里放了一个简洁的测试用例: 输出: 父母与子女之间存在简单的一对多关系。该脚本创建一个父级,添加3个子级,然后提交。接下来,它删除父级,但子级仍然存在。为什么?如何使孩子级联删除? 问题答案: 问题是sqlalchemy认为是父级的,因为这是您定

  • 主要内容:JPA级联删除示例,输出结果级联移除用于指定如果父实体被移除,则其所有相关实体也将被移除。 以下语法用于执行级联删除操作 - JPA级联删除示例 在这个例子中,我们将创建两个相互关联的实体类,但要建立它们之间的依赖关系,我们将执行级联操作。 这个例子包含以下步骤 - 第1步: 在包下创建一个名为的实体类,其中包含属性:,,以及标记为级联规范的类型的对象。 文件: StudentEntity.java - 第2步: 在包下创建