m***@cir.es
2013-03-08 11:38:03 UTC
The following bug has been logged on the website:
Bug reference: 7924
Logged by: Maria
Email address: ***@cir.es
PostgreSQL version: Unsupported/Unknown
Operating system: RedHat
Description:
Hi!
I have a trigger that when you update a value on a table, makes an insert
into another table.
The trigger looks like the following:
BEGIN
set datestyle to 'sql';
set datestyle to 'european';
IF (TG_OP = 'UPDATE' and (OLD.situation!=NEW.situation)) THEN
INSERT INTO table_B VALUES (OLD.id,NEW.situation,NOW());
END IF;
RETURN NULL;
END;
For exemple, If I do the next querys:
--> update table_A set situation='Started' where id='23';
On table_A appears:
id | situation
--------+-----------
23 | Started
On table_B appears:
id | situation | when
--------+-----------+---------------------
23 | Started | 2013-03-08 12:33:35
--> update table_A set situation='Waiting' where id='23';
On table_A appears:
id | situation
--------+-----------
23 | Waiting
On table_B appears:
id | situation | when
--------+-----------+---------------------
23 | Started | 2013-03-08 12:33:35
23 | Started | 2013-03-08 12:33:37
I don't understand why after the second update, the insert done on table_B
is incorrect, and has the same values that the first one.
I've been looking for some kind of explanation like cache or something, but
I couldn't find anything.
Thanks in advance.
Maria
Bug reference: 7924
Logged by: Maria
Email address: ***@cir.es
PostgreSQL version: Unsupported/Unknown
Operating system: RedHat
Description:
Hi!
I have a trigger that when you update a value on a table, makes an insert
into another table.
The trigger looks like the following:
BEGIN
set datestyle to 'sql';
set datestyle to 'european';
IF (TG_OP = 'UPDATE' and (OLD.situation!=NEW.situation)) THEN
INSERT INTO table_B VALUES (OLD.id,NEW.situation,NOW());
END IF;
RETURN NULL;
END;
For exemple, If I do the next querys:
--> update table_A set situation='Started' where id='23';
On table_A appears:
id | situation
--------+-----------
23 | Started
On table_B appears:
id | situation | when
--------+-----------+---------------------
23 | Started | 2013-03-08 12:33:35
--> update table_A set situation='Waiting' where id='23';
On table_A appears:
id | situation
--------+-----------
23 | Waiting
On table_B appears:
id | situation | when
--------+-----------+---------------------
23 | Started | 2013-03-08 12:33:35
23 | Started | 2013-03-08 12:33:37
I don't understand why after the second update, the insert done on table_B
is incorrect, and has the same values that the first one.
I've been looking for some kind of explanation like cache or something, but
I couldn't find anything.
Thanks in advance.
Maria
--
Sent via pgsql-bugs mailing list (pgsql-***@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs
Sent via pgsql-bugs mailing list (pgsql-***@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs