Sql 在Oracle中,我可以做一个;在表中插入或更新值;

Sql 在Oracle中,我可以做一个;在表中插入或更新值;,sql,oracle,ora-00001,Sql,Oracle,Ora 00001,我有一个有两个数字列的表,并且对它们都有一个唯一的约束。我想插入一对新值,除非该对已存在。最简单的方法是什么 如果我这样做 insert into TABLE values (100,200) 这对已经存在了,我得到一个ORA-00001错误,所以我想做一些类似的事情 insert or update into TABLE values (100,200) 您可以使用您可以尝试以下方法: insert into table select :a, :b from dual where not

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

如果我这样做

insert into TABLE values (100,200) 
这对已经存在了,我得到一个ORA-00001错误,所以我想做一些类似的事情

insert or update into TABLE values (100,200)

您可以使用

您可以尝试以下方法:

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

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