Не удалось найти ответ где-нибудь для этого, пытаясь понять, используя команду Merge, есть ли в моей целевой таблице строка, идентичная моей исходной таблице, если она в любом случае обновит значения изисходная таблица.
Другими словами, у меня есть следующие таблицы:
Будет ли исходная таблица по-прежнему выполнять обновление целевой таблицы вситуация выше?
Что я пытаюсь сделать, если целевая таблица равна исходной таблице, ничего не делать. Применяйте функции обновления / вставки / удаления только в том случае, если между таблицами имеется истинная разница.
И БОНУСНЫЕ ТОЧКИ, ЕСЛИ ВОЗМОЖНО, запускайте обновление только для конкретного столбца, который отличается не всей строкой.
Боюсь, что в настоящее время, когда условие «соответствует», оно обновит значения независимо от того, действительно ли они совпадают.
Теперь я понимаю, даже если значенияобновленные они не будут неправильными, но я пытаюсь отслеживать истинные корректировки таблицы с помощью операций вставки / обновления / удаления.
MERGE target_table USING source_table
ON merge_condition
WHEN MATCHED
THEN update_statement
WHEN NOT MATCHED
THEN insert_statement
WHEN NOT MATCHED BY SOURCE
THEN DELETE;