Во первых хочу заметить что Адриано в коментариях к этой команде написал следующее:

1. Views are only allowed if it's based on only one table (i.e. no joins or unions).

Так вот это неправда. У меня всё замечательно работает и на вьюхах с джойнами.


Во вторых есть неописанный момент по поводу MATCHING. Адриано там судя по всему использовал оператор =, а меня мучает сомнение что там должен быть IS NOT DISTINCT FROM, потому как у меня следующие команды выполнили вставки:

UPDATE OR INSERT INTO VIEW1 (ID, VALUE1, VALUE2)
VALUES (1, NULL, NULL)
MATCHING (VALUE1, VALUE2);

UPDATE OR INSERT INTO VIEW1 (ID, VALUE1, VALUE2)
VALUES (2, NULL, NULL)
MATCHING (VALUE1, VALUE2);


Во всяком случае мой ИМХО что IS NOT DISTINCT FROM здесь логичнее (а ещё лучше если бы можно было этим рулить).

Что думаете?

Ответить