2010-10-06 2 views
0

У меня есть таблица с двумя столбцами номера и уникальное ограничение над ними. Я хотел бы вставить новую пару значений, ЕСЛИ пара уже существует. Каков самый простой способ сделать это?В Oracle я могу сделать «вставить или обновить значения в TABLE»

Если я

insert into TABLE values (100,200) 

и пара уже существует, я получаю сообщение об ошибке ORA-00001, так что я хотел бы сделать что-то вроде

insert or update into TABLE values (100,200) 
+2

Если пара значений уже существует, что вы пытаетесь обновить? – Nellius

+4

Возможный дубликат [Oracle: как UPSERT (обновить или вставить в таблицу?)] (Http://stackoverflow.com/questions/237327/oracle-how-to-upsert-update-or-insert-into-a -table) –

+0

@Nellius: Ничего, действительно. Но если они не существуют, я бы хотел их вставить. Значения поступают из внешнего источника. Я хотел бы вставить их в базу данных, но я не хочу писать дополнительный код, который сначала проверяет, присутствуют ли они. –

ответ

1

Вы можете попробовать что-то вроде:

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