在 Oracle 中,我可以执行“将值插入或更新到表中”吗
Posted
技术标签:
【中文标题】在 Oracle 中,我可以执行“将值插入或更新到表中”吗【英文标题】:In Oracle, can I do an "insert or update values into TABLE" 【发布时间】:2010-10-06 13:46:54 【问题描述】:我有一个包含两个数字列的表,并且对它们都有一个唯一约束。我想插入一对新的值,除非这对已经存在。最简单的方法是什么?
如果我这样做了
insert into TABLE values (100,200)
并且这对已经存在我得到一个 ORA-00001 错误,所以我想做类似的事情
insert or update into TABLE values (100,200)
【问题讨论】:
如果这对值已经存在,你要更新什么? Oracle: how to UPSERT (update or insert into a table?) 的可能重复项 @Nellius:没什么,真的。但如果它们不存在 我想插入它们。这些值来自外部来源。我想将它们插入数据库,但我不想编写额外的代码来首先检查它们是否已经存在。 @Tony Andrews:是的,此外,您的回答(合并“老式方式”)对我来说效果很好。谢谢。我应该将此作为重复项关闭,还是您想重新输入您的声誉答案? :-) 我不认为那会是板球! 【参考方案1】:您可以使用MERGE
【讨论】:
【参考方案2】:你可以试试这样的:
insert into table
select :a, :b from dual
where not exists (select 1 from table where column1 = :a and column2=:b)
【讨论】:
以上是关于在 Oracle 中,我可以执行“将值插入或更新到表中”吗的主要内容,如果未能解决你的问题,请参考以下文章