Re: Empty Updates, ON UPDATE triggers and Rules
От | Michael Glaesemann |
---|---|
Тема | Re: Empty Updates, ON UPDATE triggers and Rules |
Дата | |
Msg-id | 600DA7A0-A73C-4704-A7C9-0FC52087EC34@seespotcode.net обсуждение исходный текст |
Ответ на | Re: Empty Updates, ON UPDATE triggers and Rules (Josh Trutwin <josh@trutwins.homeip.net>) |
Ответы |
Re: Empty Updates, ON UPDATE triggers and Rules
|
Список | pgsql-general |
On Aug 6, 2009, at 15:31 , Josh Trutwin wrote: > Interestingly, this syntax is accepted in 8.3.7, but SELECT queries > fail: > > CREATE TRIGGER trigger_test_upd_set_last_mod > BEFORE UPDATE ON test_upd > FOR EACH ROW EXECUTE PROCEDURE set_last_modified(); > > Then: > > UPDATE test_upd SET foo = 'foo' WHERE id = 1; > ERROR: operator does not exist: test_upd <> test_upd > LINE 1: SELECT $1 != $2 > ^ > HINT: No operator matches the given name and argument type(s). You > might need to add explicit type casts. QUERY: SELECT $1 != $2 > CONTEXT: PL/pgSQL function "set_last_modified_test" line 2 at IF That's not a SELECT query per se: AIUI it's how the evaluation of the NEW != OLD expression is evaluated within the PL/pgSQL function as part of the IF statement (note the "line 2 at IF" context line). It's just saying the <> operator doesn't exist for the test_upd rowtype. Michael Glaesemann grzm seespotcode net
В списке pgsql-general по дате отправления: