Re: Trigger function cannot reference field name with capital letter
От | John R Pierce |
---|---|
Тема | Re: Trigger function cannot reference field name with capital letter |
Дата | |
Msg-id | 53EC376F.4020406@hogranch.com обсуждение исходный текст |
Ответ на | Trigger function cannot reference field name with capital letter (Patrick Dung <patrick_dkt@yahoo.com.hk>) |
Ответы |
Re: Trigger function cannot reference field name with capital
letter
|
Список | pgsql-general |
On 8/13/2014 8:52 PM, Patrick Dung wrote:
I have a field called postTimestamp.The trigger function could not reference it.When I change my field to post_timestamp. I can reference it from the tigger function.Version is 9.3.5. Any comment?< 2014-08-14 00:23:32.717 HKT >ERROR: post "new" has no field "posttimestamp"
< 2014-08-14 00:23:32.717 HKT >CONTEXT: SQL statement "SELECT * from tbl1where NEW.posttimestamp > "2014-01-01 00:00:00" )"
PL/pgSQL function test_trigger() line 9 at assignment
field and talbe names with mixed case have to be "Quoted". string constants, on the other hand, are are in single 'quotes'.
try...
SELECT * from tbl1 where new."postTimestamp' > timestamp '2014-01-01 00:00:00'
< 2014-08-14 00:23:32.717 HKT >STATEMENT: INSERT INTO public.tbl1("vendor", url, "postTimestamp", product, "type", "itemID") VALUES ('vendor1'::text, 'http://example.org'::text, '2014-01-01 01:01:01'::timestamp without time zone, 'product1'::text, 'food'::text, '1'::bigint)
< 2014-08-14 00:32:39.708 HKT >ERROR: syntax error at or near "SELECT" at character 314
those two error logs have different timestamps, I don't believe that error is on that statement.
there's a whole lot of unnecessary typecasting in that insert, however.
INSERT INTO public.tbl1("vendor", url, "postTimestamp", product, "type", "itemID")
VALUES ('vendor1', 'http://example.org', timestamp '2014-01-01 01:01:01', 'product1', 'food', 1)
would suffice nicely.
-- john r pierce 37N 122W somewhere on the middle of the left coast
В списке pgsql-general по дате отправления: