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

是否使用SQL进行条件INSERT?

姬熙云
2023-03-14
问题内容

我有一个不时更新数据集的数据库。在这里,可能发生的是交付了数据库中已经存在的数据集。

目前,我首先要做的是

SELECT FROM ... WHERE val1=... AND val2=...

检查是否已经存在具有这些数据的数据集(使用WHERE语句中的数据)。如果没有返回任何值,则说明我正在执行INSERT。

但这对我来说似乎有点复杂。所以我的问题是:是否有某种条件式INSERT仅在不存在新数据集的情况下才添加它?

我正在使用 SmallSQL


问题答案:

您几乎可以在所有关系数据库中使用一个语句和一个子查询来做到这一点。

INSERT INTO targetTable(field1) 
SELECT field1
FROM myTable
WHERE NOT(field1 IN (SELECT field1 FROM targetTable))

某些关系数据库已针对上述内容改进了语法,因为您所描述的是相当常见的任务。SQL
Server具有MERGE各种选项的语法,而MySQL具有可选的INSERT OR IGNORE语法。

编辑:
SmallSQL的文档是稀疏的,因为它实现了SQL标准的哪些部分。它可能不会实现子查询,因此,如果您需要坚持使用SmallSQL,则可能无法遵循上述建议或其他任何建议。



 类似资料:
  • 问题内容: 我在Postgres 11.3数据库中有一个带有列的表。 尝试更新嵌套数组名称中的所有对象。 如果路径是对象,则应将路径从对象更新为具有以下值的字符串: 如果不存在该路径,则该对象应保持不变。 使用查询测试设置:小提琴链接 所需结果: 我已经修改了查询并链接到小提琴中。有人可以看看是否正确吗? 问题答案: 平原应该有所作为。 db <>在这里 拨弄 (Postgres 11!) 为了同

  • 问题内容: 我不想使用jQuery,但我想使用Ajax进行文件上传。那可能吗? 如果是这样,我在哪里可以找到有关信息/教程? 问题答案: 不,无法使用javascript执行此操作。 但是,为了给人“ AJAX”的感觉,您可以向隐藏的iframe提交表单,然后将脚本结果输出到其中,然后从那里进行处理。Google 并从那里开始。 如果您使用的是jQuery,并且您的表单中包含任何文件字段,也可以使

  • 在一个有四列的大数据框(“myfile”)中,我必须添加第五列,其中的值有条件地基于前四列。 更喜欢使用和的答案,主要是因为它在大型数据集中的速度。 我的数据框如下所示: 第五列(V5)的值基于一些条件规则: 现在我想使用函数在所有行上使用这些规则(以避免慢循环)。类似这样的事情(是的,我知道这样不行!): 结果应该是: 如何在dplyr中执行此操作?

  • 我想使用条件查询。 这是我的问题 这是我的java代码 它给出

  • 问题内容: 从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我正在使用jquery datables / jedtiable,它传递回ROW和COLUMN号以及要更新的新值,如下所示。这是POST到另一个JSP页

  • 问题内容: 在PHP手册中,有一条注释: 注意:如果不使用此功能对数据进行转义,则该查询容易受到SQL注入攻击的攻击。 这足以进行反SQL注入吗?如果没有,您能举个例子和一个好的反SQL注入解决方案吗? 问题答案: 通常足以避免SQL注入。不过,这确实取决于它是否没有错误,即它 存在 脆弱性的可能性很小(但是这还没有在现实世界中体现出来)。准备好的语句是在概念上完全排除SQL注入的更好的替代方法。