From: | "drum(dot)lucas(at)gmail(dot)com" <drum(dot)lucas(at)gmail(dot)com> |
---|---|
To: | Postgres General <pgsql-general(at)postgresql(dot)org> |
Subject: | Function PostgreSQL 9.2 |
Date: | 2016-04-19 22:23:49 |
Message-ID: | CAE_gQfWbZBSYwa6vBfVOgZH9c4i9OS7fNqahhFXgcuAu29tE_g@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi all,
I've got two tables:
- users
- companies
I'm trying to create a function that:
- if users.code is empty, it gives a default value
- And the increment_client_code in company should auto increment for the
next client code
What I've done so far:
DROP FUNCTION IF EXISTS client_code_increment_count();
> CREATE OR REPLACE FUNCTION "public"."client_code_increment_count" ()
> RETURNS TABLE("code" INT) AS
> $BODY$
> SELECT MAX(CAST(users.code AS INT)) FROM users WHERE users.code ~ '^\d+$'
> AND company_id = 2
> $BODY$
> LANGUAGE sql;
> SELECT * FROM "client_code_increment_count"();
CREATE OR REPLACE FUNCTION "public"."auto_generate_client_code_if_empty" ()
> RETURNS "trigger"
> VOLATILE
> AS $dbvis$
> BEGIN
> END;
> $dbvis$ LANGUAGE plpgsql;
> CREATE TRIGGER "increment_client_code"
> BEFORE INSERT OR UPDATE ON users
> FOR EACH ROW
> EXECUTE PROCEDURE "auto_generate_client_code_if_empty"();
But still can't do that works.. What Am I missing?
Cheers
From | Date | Subject | |
---|---|---|---|
Next Message | David G. Johnston | 2016-04-19 22:38:05 | Re: Function PostgreSQL 9.2 |
Previous Message | Bill Ross | 2016-04-19 22:01:18 | Re: index build faster on 8G laptop than 30G server |