Я как-то застрял с проблемой, и я не совсем уверен, как подойти к этому:
У меня есть таблица, давайте назовем ее «активной», с триггером на уровне строк, который срабатывает раньше вставка к столу. Функция триггера проверяет, существуют ли уже вставляемые значения в таблице, и либо удаляет их (с помощью «RETURN NULL;»), либо, если вставленные значения более актуальны, чем существующие значения, обновляет значения строк. В случае обновления есть триггер до обновления, который сохранит значения строк перед обновлением в таблицу аудита «active_audit». В результате таблица «активные» содержит только самые последние значения, а изменения для каждого объекта можно извлечь из таблицы «active_audit».
Однако я бы хотел, чтобы триггер «перед вставкой» возвращал идентификатор строки (независимо от того, был ли он фактически вставлен, удален или обновлен). Есть ли способ добиться этого, что-то вроде «пропустить вставку, но вернуть идентификатор»?