Re: Problem with trigger function

From: Steve Baldwin <steve(dot)baldwin(at)gmail(dot)com>
To: byrnejb(at)harte-lyne(dot)ca
Cc: "pgsql-generallists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Problem with trigger function
Date: 2021-02-11 19:56:37
Message-ID: CAKE1AiZZwaqGG7MkgkmMqjy_2kxykQPieRvuauC8GOHtZX3HUQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Try ... EXECUTE PROCEDURE customer_num_informix()

Steve

On Fri, Feb 12, 2021 at 6:47 AM James B. Byrne <byrnejb(at)harte-lyne(dot)ca>
wrote:

> I am trying to implement a trigger in a PostgreSQL-9.6.17 database:
>
> CREATE OR REPLACE FUNCTION customer_num_informix()
> RETURNS trigger AS $$
> BEGIN
> -- An Aubit/Informix 4GL INSERT statement passes the value 0 to Informix
> -- DBMS for columns that have the SERIAL data type. Informix will then
> -- use the incremented serial number in place of 0. PostgreSQL instead
> -- will simply take the value 0 and replace the incremented serial
> number.
> -- This trigger function emulates the Informix DBMS behaviour.
> --
> -- The NEW variable contains the data for the row to be INSERTed or
> -- UPDATEd. It, and its complement OLD used for UPDATE and DELETE,
> -- are automatically created and populated by PostgreSQL whenever
> -- a data-change function is called.
> --
> IF NEW.customer_num = 0 THEN
> SELECT nextval('customer_customer_num_seq') INTO
> NEW.customer_customer_num;
> ELSE
> IF NEW.customer_customer_num > 0 THEN
> PERFORM setval('customer_customer_num_seq',
> NEW.customer_customer_num);
> END IF;
> END IF;
> RETURN NEW;
> END;
> $$ LANGUAGE plpgsql;
>
> ALTER FUNCTION public.customer_num_informix() OWNER TO hll_4gl_testing;
>
> CREATE TRIGGER customer_num_serial
> BEFORE INSERT ON customer
> FOR EACH ROW EXECUTE customer_num_informix();
>
> The problem is that I am getting a syntax error on the CREATE TRIGGER
> statement:
>
> ERROR: syntax error at or near "customer_num_informix"
> LINE 3: FOR EACH ROW EXECUTE customer_num_informix();
>
> I do not see what the error is. What is wrong with the syntax I used?
>
> --
> *** e-Mail is NOT a SECURE channel ***
> Do NOT transmit sensitive data via e-Mail
> Unencrypted messages have no legal claim to privacy
> Do NOT open attachments nor follow links sent by e-Mail
>
> James B. Byrne mailto:ByrneJB(at)Harte-Lyne(dot)ca
> Harte & Lyne Limited http://www.harte-lyne.ca
> 9 Brockley Drive vox: +1 905 561 1241
> Hamilton, Ontario fax: +1 905 561 0757
> Canada L8E 3C3
>
>
>
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Stephen Frost 2021-02-11 19:59:37 Re: Encryption of Data Specific to a Tenant in PostgreSQL database | General Idea
Previous Message James B. Byrne 2021-02-11 19:47:06 Problem with trigger function