СЛИЯНИЕ Oracle не ВСТАВЛЯЕТ

У меня есть этот простой пример, я не могу, казаться, получить работу:

MERGE INTO mytable  mt
USING dual
ON (mt.id = 'AAA' )  
WHEN MATCHED THEN 
    UPDATE SET mt.name = 'updated'
WHEN NOT MATCHED THEN 
    INSERT (mt.id , mt.name )
    VALUES ('AAA', 'Gooood' );

Если запись 'AAA' существует в таблице, она обновляется успешно.

Но если не делает существует, это не вставляется:

Affected rows: 0
Time: 0.003ms

Какая-либо подсказка о том, что я делаю неправильно?

7
задан Jalil 25 February 2010 в 17:54
поделиться

1 ответ

У меня работает:

SQL> create table mytable (id varchar(3), name varchar(30));

Table created.

SQL> MERGE INTO mytable  mt
  2  USING dual
  3  ON (mt.id = 'AAA' )  
  4  WHEN MATCHED THEN 
  5      UPDATE SET mt.name = 'updated'
  6  WHEN NOT MATCHED THEN 
  7      INSERT (mt.id , mt.name )
  8      VALUES ('AAA', 'Gooood' );

1 row merged.

SQL> select * from mytable;

ID  NAME
--- ------------------------------
AAA Gooood
8
ответ дан 7 December 2019 в 05:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: