【问题标题】:In Oracle, can I do an "insert or update values into TABLE"在 Oracle 中,我可以执行“将值插入或更新到表中”吗
【发布时间】:2010-10-06 13:46:54
【问题描述】:

我有一个包含两个数字列的表,并且对它们都有一个唯一约束。我想插入一对新的值,除非这对已经存在。最简单的方法是什么?

如果我这样做了

insert into TABLE values (100,200) 

并且这对已经存在我得到一个 ORA-00001 错误,所以我想做类似的事情

insert or update into TABLE values (100,200)

【问题讨论】:

  • 如果这对值已经存在,你要更新什么?
  • @Nellius:没什么,真的。但如果它们不存在 我想插入它们。这些值来自外部来源。我想将它们插入数据库,但我不想编写额外的代码来首先检查它们是否已经存在。
  • @Tony Andrews:是的,此外,您的回答(合并“老式方式”)对我来说效果很好。谢谢。我应该将此作为重复项关闭,还是您想重新输入您的声誉答案? :-)
  • 我不认为那会是板球!

标签: sql oracle ora-00001


【解决方案1】:

您可以使用MERGE

【讨论】:

    【解决方案2】:

    你可以试试这样的:

    insert into table
    select :a, :b from dual
    where not exists (select 1 from table where column1 = :a and column2=:b)
    

    【讨论】:

      猜你喜欢
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多