Re: Function PostgreSQL 9.2 - Mailing list pgsql-general

From drum.lucas@gmail.com
Subject Re: Function PostgreSQL 9.2
Date
Msg-id CAE_gQfWWm3e_paXCz8xO+7KBzQpzznwYnxR_rCOJnvQ+9srFJg@mail.gmail.com
Whole thread Raw
In response to Re: Function PostgreSQL 9.2  ("drum.lucas@gmail.com" <drum.lucas@gmail.com>)
Responses Re: Function PostgreSQL 9.2
List pgsql-general


On 5 May 2016 at 16:56, drum.lucas@gmail.com <drum.lucas@gmail.com> wrote:
CREATE OR REPLACE FUNCTION users_code_seq()
   RETURNS "trigger" AS $$
BEGIN
        
        IF (TG_OP = 'INSERT') THEN
        UPDATE public.company_seqs SET last_seq = (last_seq + 1) WHERE company_id = NEW.company_id;
        
        ELSEIF NEW.code IS NULL THEN
        SELECT last_seq INTO code FROM public.company_seqs WHERE company_id = NEW.company_id ORDER BY last_seq DESC;
        
        END IF;
        
        RETURN NEW;
        
END;
$$ LANGUAGE plpgsql;

- The command above, does not insert the last_seq into users.code column. And I don't know why.


If I comment the line: ELSEIF NEW.code IS NULL THEN, the data is inserted into the users.code column.

But as the customer can add data into that column, I only insert the last_seq if he/she didn't insert anything.

So I need that ELSEIF NEW.code IS NULL THEN.

- What am I missing? 

Thanks
Lucas



I got it.. it's working now. 
Thanks 

pgsql-general by date:

Previous
From: "drum.lucas@gmail.com"
Date:
Subject: Re: Function PostgreSQL 9.2
Next
From: Zenaan Harkness
Date:
Subject: Re: Debian and Postgres