- This is what I did... -- Creating the tableCREATE TABLE public.company_seqs(company_id BIGINT NOT NULL, last_seq BIGINT NOT NULL DEFAULT 1000,CONSTRAINT company_seqs_pk PRIMARY KEY (company_id));
-- Creating the function CREATE OR REPLACE FUNCTION users_code_seq() RETURNS "trigger" AS' BEGIN UPDATE public.company_seqs SET last_seq = (last_seq + 1) WHERE company_id = NEW.company_id; SELECT INTO NEW.code last_seq FROM public.company_seqs WHERE company_id = NEW.company_id; END IF; RETURN new; END ' LANGUAGE 'plpgsql' VOLATILE; -- Creating the triggerCREATE TRIGGER tf_users_code_seq BEFORE INSERT ON public.users FOR EACH ROW EXECUTE PROCEDURE users_code_seq(); When inserting data: INSERT INTO public.users (id,email,encrypted_password,sign_in_count,created_at,updated_at,code,company_id) VALUES (672,'te...@test.com','bucefalo','0','2016-05-03 00:01:01','2016-05-03 00:01:01',default,'1'); INSERT INTO public.users (id,email,encrypted_password,sign_in_count,created_at,updated_at,code,company_id) VALUES (672,'te...@test.com','bucefalo','0','2016-05-03 00:01:01','2016-05-03 00:01:01','inserting my own data code column','1'); - On the first query, nothing happens on the users.code column. The column is null. - On the second query, I can see the "inserting my own data code column" inserted into the code column. This means my Trigger function is not working.. I don't know why.