Во первых хочу заметить что Адриано в коментариях к этой команде написал
следующее:
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 здесь логичнее (а ещё
лучше если бы можно было этим рулить).
Что думаете?