Re: Function PostgreSQL 9.2

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Alban Hertroys <haramrae(at)gmail(dot)com>
Cc: Lucas Possamai <drum(dot)lucas(at)gmail(dot)com>, Berend Tober <btober(at)computer(dot)org>, Melvin Davidson <melvin6925(at)gmail(dot)com>, Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>, Postgres General <pgsql-general(at)postgresql(dot)org>
Subject: Re: Function PostgreSQL 9.2
Date: 2016-05-05 14:29:51
Message-ID: CAKFQuwa-urBjWiPJJj8x+X9mb8ADMZe+ZbT7g45EzZmyt7Ygpg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thu, May 5, 2016 at 3:54 AM, Alban Hertroys <haramrae(at)gmail(dot)com> wrote:

>
> > On 05 May 2016, at 8:42, drum(dot)lucas(at)gmail(dot)com wrote:
>
> > The final function code is:
> >
> > CREATE OR REPLACE FUNCTION users_code_seq()
> > RETURNS "trigger" AS $$
> > DECLARE code character varying;
> > BEGIN
> > IF NEW.code IS NULL THEN
> > SELECT client_code_increment INTO STRICT NEW.code FROM
> public.companies WHERE id = NEW.id ORDER BY client_code_increment DESC;
>
>
> ^^^^^^^
> There's your problem. I'm pretty sure the keyword STRICT isn't valid
> there. It probably gets interpreted as a column name.
>
>
​No, its a sanity check/assertion. If that trips its because there is no
company having a value of NEW.id on the public.companies table. If that is
OK then remove the STRICT but if you are indeed expecting a record to be
present and it is not it is correctly telling you that there is a problem
in the data. Namely that said company needs to be added to the table.

David J.​

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alvaro Herrera 2016-05-05 14:46:17 Re: Possible causes for "tuple concurrently updated" error
Previous Message Moreno Andreo 2016-05-05 12:39:25 PostgreSQL and Windows 10 exception 0xC0000018