如何使用特定表中的列作为我需要从中删除、插入或更新数据的表名

Posted

技术标签:

【中文标题】如何使用特定表中的列作为我需要从中删除、插入或更新数据的表名【英文标题】:How to use a Column in a particular table as Table name from which i need to delete or insert or update my data 【发布时间】:2021-11-05 03:35:51 【问题描述】:

假设我有如下数据

   Id        Table Name 
    1          T1
    2          T3 
    3          T2
    4          T1

我可以编写一个查询来删除表 T1 中的 1 和 4 以及表 T3 中的 2 和表 T3 中的 3 吗?

【问题讨论】:

简短回答:不,每次删除通常都需要单独的查询。除此之外,您当前的设计可能不是最佳的。为什么所有这些记录不能在同一个表中? 基本上我正在尝试使用 mongo db 的 oplogs 来更新它将在 bigQuery 上的每日转储,因此设计了用于从所有集合中以上述方式删除、更新和插入的表。跨度> 这里需要动态 SQL,这意味着您需要编写生成删除 SQL 语句的代码。 这会是你的选择吗? SELECT ... INTO @delete_query; PREPARE stmt FROM @delete_query; EXECUTE stmt 由于您现在的要求是 BigQuery 的动态 SQL,我建议您为此打开一个新的 *** 线程。 【参考方案1】:

正如@Tim 所建议的,您在单个查询中无法实现从多个表中删除的要求,您可以使用动态 SQL 生成每个删除 SQL 语句并使用执行命令来运行查询。

【讨论】:

以上是关于如何使用特定表中的列作为我需要从中删除、插入或更新数据的表名的主要内容,如果未能解决你的问题,请参考以下文章

如何使用DataGridView从数据库表中插入,更新和删除数据?

数据库:表的插入,更新表中的数据记录,删除表中的数据记录

插入后使用 SQL Server 触发器更新另一个表中的列

仓库更新的增量负载

插入多个文本文件

在 oracle 数据库的所有表中更新与特定模式匹配的列