У меня есть два файла sqls, которые содержат более 300000 записей в каждом. Проблема в том, что есть некоторые повторяющиеся записи, которые получают обновление
что вызывает уникальную проблему нарушения ограничения. Пожалуйста, найдите пример ниже
Planid + Last_mod_Date - составной первичный ключ в таблице PLAN_HISTORY. Присутствует таблица PLAN_HISTORY, куда записи вставляются с использованием PLAN_HISTORY_TRIGGER всякий раз, когда таблица PLAN получает обновление. которая вызывает эту проблему случайным образом, когда sysdate одинаков.
Пример:
File 1:
UPDATE plan SET enroll_id = '1', Last_mod_Dt = sysdate where plan_id = '1234';
File 2 :
UPDATE plan SET plan_name = 'TPA', Last_mod_Dt = sysdate where plan_id = '1234';
Поскольку существует много записей, которые могут получить дубликаты для PLAN_ID + SYSDATE (last_mod_dt). как я могу избежать этой проблемы?
Я думаю о некоторых решениях, таких как
ДОБАВЛЯТЬ секунды в sysdate, но опять-таки будет выдано то же исключение, что и в некоторый момент времени.
Я могу добавить некоторую задержку между двумя файлами, но не уверен, насколько это возможно в Oracle
Последний вариант - мне нужно найти все дубликаты плановых идентификаторов из двух файлов и поместить их в один оператор обновления.
Но есть ли хорошие решения для подобных задач?