如何在Oracle数据库中同时从2个表中删除?

java123999

在我的Oracle数据库中,我希望从2个不同的表中删除行。

问题是,如果我从犬舍先删除行,那么我想在DOG表删除行无法找到要删除。

下面是我SQL statements要从两个表中删除的内容。

DELETE FROM KENNEL WHERE COUNTRY_ID IS NULL;
DELETE FROM DOG WHERE ID IN (SELECT DOG_ID FROM KENNEL WHERE COUNTRY_ID IS NULL);

我怎么能这样解决这个问题的2只删除发生在同一时间,并确保这两个表中的行被删除?

注意:我不能从DOG中删除,然后从KENNEL中删除,因为KENNEL是必须首先删除的子记录。

骨干主义者

我会像这样执行这组删除操作:

-- delete rows from child table first
DELETE FROM KENNEL WHERE COUNTRY_ID IS NULL;

-- now delete any parent rows that don't have any child records
DELETE FROM DOG WHERE ID not exists (SELECT DOG_ID FROM KENNEL);

这样做意味着如果狗窝表中给定的dog_id的所有country_id都不都是空的,则您不会尝试删除父记录-如果尝试,则会出错。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

同步 Oracle 数据库中 2 个表中的数据库列

如何在数据库中创建表,该表存储来自MS Access数据库中2个不同表的数据c#WPF中

如何在Flutter中的不同时间在Sqlite数据库中创建多个表

如何在SQLAlchemy中连接来自不同数据库的2个表?

删除数据库中的所有表后,如何在我的数据库中创建表?

从数据库Oracle 10g中删除表

如何从Symfony中的数据库/实体中删除表?

如何在表视图控制器中从领域数据库中删除对象

如何在 ROR 中从数据库中永久删除表

如何在ORACLE数据库的表中的JSON BLOB字段中创建视图?

Oracle数据库中2个表之间的数据同步

如何删除数据库表中的数据

是否可以同时从Sqlite数据库中的所有表中删除数据

如何在同一 Kusto 集群上的不同数据库中的 2 个表之间安排数据移动

如何从Oracle数据库中删除基于列的约束?

如何从Oracle数据库列中删除行距

如何从数据库中的2个不同表中从Laravel中的Selected Option获取值

如何使用一个SQL查询从数据库中删除所有表?

如何使用一个 SQL 查询从数据库中删除所有外部表?

如何在oracle数据库表中存储双冒号值

如何从HTML表和数据库中删除查询?

如何删除Django中的数据库表?

如何比较 2 个不同数据库中的 2 个表并仅更新更改的值?

如何使用带有 PDO 的 2 个不同 ID 从数据库中删除数据

如何在Firebase云数据库中删除两个文档?

如何在Oracle数据库中运行两个sql命令

从数据库表中删除几行

如何在不删除(删除)数据库的情况下从所有表中删除所有行?

在 Python 中连接到 2 个 Oracle 数据库