Я знаю, что есть способы доступа к типу запроса, именам таблиц, oids и т. Д. В определениях триггеров:
http://www.postgresql.org/docs/8.3/static/plpgsql-trigger.html
В любом случае, есть ли шанс, что я выполнюОБНОВЛЕНИЕ строки, которая запустила триггер без необходимости помечать каждую строку в таблице уникальным идентификатором?
например, если у меня есть таблица для хранения журналов, мне не нужен здесь уникальный идентификатор ...и с течением времени на самом деле могут появиться некоторые строки, которые будут равны.
CREATE TABLE users_log
(
uid bigint NOT NULL,
event smallint NOT NULL,
source character varying,
event_time timestamp with time zone
)
Я знаю, что из-за точности микросекунд в типе данных «временная метка с часовым поясом» эта ситуация почти равна невозможно, но не совсем невозможно ...
Так как мне написать запрос в триггере, чтобы иметь возможность ОБНОВИТЬ только вставленную строку?
$BODY$BEGIN
UPDATE "users_log" SET "event_time" = now(); -- this updates all rows
-- WHERE "id" = NEW.id; - this is what i don't want
RETURN NEW;
END;$BODY$