По умолчанию в PostgreSQL используется триггер на уровне строк (в отличие от SQL Server, где это триггер на уровне операторов), поэтому нет необходимости выбирать из «вставленной» таблицы.
Доступ к новым и старым значениям можно получить с помощью ключевых слов new
и old
(старых для триггера вставки не существует).
В вашем случае выражение будет просто:
update com03
set co_creationdate = CURRENT_TIMESTAMP,
co_creationby = CURRENT_USER
where co_id = new.co_id;
Нет необходимости «выбирать из вставленного».
Это предполагает, что триггер не стрельба по столу com03
.Если ваш триггер срабатывает для com03
(что вы нам не сказали), то это еще проще:
new.co_creationdate := current_timestamp;
new.co_creationby := current_user;
Подробнее см. В руководстве: http://www.postgresql.org/docs/current/static/plpgsql-trigger.html
Эта страница также содержит пример, который делает именно то, что вы пытаетесь достичь