Reputation:
I have created below trigger and function for update on function where I want to exclude trigger execution when there are update on two columns 'frm' and 'upto' which are of type "timestamp without time zone"
In trigger function I am checking for updates on these two columns
CREATE OR REPLACE FUNCTION ff() RETURNS TRIGGER AS $$
BEGIN
if((old."frm" == New."frm") and (old."upto" == New."upto") ) then
insert into TG_TABLE_NAME (select * from inserted );
New."from" := old."from";
NEW."upto" := current_timestamp;
RETURN NEW;
END IF;
RETURN NULL;
END $$ LANGUAGE plpgsql;
create trigger update_trig2 after update on dd
for each row execute procedure ff();`
After running update query i am getting below error in postgreSQL
ERROR: operator does not exist: timestamp without time zone == timestamp without time zone
Upvotes: 2
Views: 14013
Reputation: 44921
The comparison operator is =
in SQL and PL/pgSQL.
So you need to replace ==
with =
Upvotes: 4