Вставка одной строки не приведет к ошибке таблицы мутаций - как это может быть, поскольку этой строки раньше не было?
Но метод insert-select потенциально может включать более одной строки, так что вы получитеошибка.
Как правило, в триггере не должно быть операций DML без запроса.Слишком много возможных побочных эффектов и нежелательных последствий.
Лучше всего написать процедуру, которая сделает вставку за вас, не предоставляя привилегии вставки для таблицы напрямую, только для пакета, который владеет процедурой.Затем внутри этой процедуры вы можете сделать удаление перед вставкой, или вы можете сделать слияние - или что-то еще.
Вся логика скрыта внутри процедуры, и, ограничивая привилегии на столе, вы гарантируете, что процедура должна быть вызвана.
Надеюсь, это поможет!