我需要一个触发器来更新字段,其中包含删除记录时的确切日期和时间。 fecha_validez_hasta字段是TIMESTAMP WITHOUT TIME ZONE。我收到语法错误。
EXECUTE 'UPDATE '||TG_RELNAME||'_hv SET fecha_validez_hasta='||CURRENT_TIMESTAMP||' where id='||OLD.id;
错误在时间段的开头给出。看起来它不会将其识别为时间戳。
答案 0 :(得分:1)
您的语句将CURRENT_TIMESTAMP
的值转换为字符串,这不是您想要的。
使CURRENT_TIMESTAMP
函数调用成为真实语句的一部分:
EXECUTE 'UPDATE '||TG_RELNAME||'_hv SET fecha_validez_hasta=CURRENT_TIMESTAMP where id='||OLD.id
注意fecha_validez_hasta=CURRENT_TIMESTAMP
而不是fecha_validez_hasta='||CURRENT_TIMESTAMP||'..