Re: Function PostgreSQL 9.2 - Mailing list pgsql-general

From drum.lucas@gmail.com
Subject Re: Function PostgreSQL 9.2
Date
Msg-id CAE_gQfVW3REAiCTBDQWTLJZRV-xj033pD_YEwB=kqWVEeXJWFg@mail.gmail.com
Whole thread Raw
In response to Re: Function PostgreSQL 9.2  (Berend Tober <btober@computer.org>)
Responses Re: Function PostgreSQL 9.2
Re: Function PostgreSQL 9.2
List pgsql-general
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

pgsql-general by date:

Previous
From: George Neuner
Date:
Subject: Re: Thoughts on "Love Your Database"
Next
From: "drum.lucas@gmail.com"
Date:
Subject: Re: Function PostgreSQL 9.2