Estou tendo problemas para adequar a function ao que eu preciso: INSERT INTO public.users > (id,email,encrypted_password,sign_in_count,created_at,updated_at,company_id) > VALUES (66,'[email protected]','password','0','2016-05-03 > 00:01:01','2016-05-03 00:01:01','15');
- Note como eu não estou fornecendo dados para a coluna "code". Recebo o erro em seguida. > ERROR: query returned no rows > CONTEXT: PL/pgSQL function users_code_seq() line 7 at SQL statement - Se eu incluir o valor como default, recebo o mesmo erro > INSERT INTO public.users > (id,email,encrypted_password,sign_in_count,created_at,updated_at,code,company_id) > VALUES (4,'[email protected]','password','0','2016-05-03 > 00:01:01','2016-05-03 00:01:01',default,'2'); I get the same error - Por favor, se alguém puder ajudar com isto... não sei onde estou errando... *Como estou fazendo meus tests?:* *1 -* 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; > END IF; > IF (TG_OP = 'INSERT') THEN > UPDATE public.companies SET client_code_increment = > (client_code_increment + 1) WHERE id = NEW.id; > END IF; > RETURN NEW; > END; > $$ LANGUAGE plpgsql; *2 - * *companies.client_code_increment:* ALTER TABLE public.companies ADD COLUMN client_code_increment integer; > ALTER TABLE public.companies ALTER COLUMN client_code_increment SET NOT > NULL; > ALTER TABLE public.companies ALTER COLUMN client_code_increment SET > DEFAULT 1000; *3 - * *Trigger:* > CREATE TRIGGER tf_users_code_seq > BEFORE INSERT > ON public.users > FOR EACH ROW > EXECUTE PROCEDURE users_code_seq(); *4 - Insert dentro da tabela companies, para cadastrar duas empresas:* > INSERT INTO > public.companies(id,name,created_at,updated_at,client_code_increment) > VALUES (1,'Company 1','2016-05-03 00:01:01','2016-05-03 00:01:01',default); > - *PASS* > INSERT INTO > public.companies(id,name,created_at,updated_at,client_code_increment) > VALUES (2,'Company 2','2016-05-03 00:01:01','2016-05-03 > 00:01:01',default); *- PASS* *5 - insert dentro da tabela users, para cadastrar os usuários:* > INSERT INTO public.users > (id,email,encrypted_password,sign_in_count,created_at,updated_at,code,company_id) > VALUES (1,'[email protected]','password','0','2016-05-03 > 00:01:01','2016-05-03 00:01:01','default','2'); - > *PASS*INSERT INTO public.users > (id,email,encrypted_password,sign_in_count,created_at,updated_at,code,company_id) > VALUES (2,'[email protected]','password','0','2016-05-03 > 00:01:01','2016-05-03 00:01:01',default,'1'); - > *NO PASS*INSERT INTO public.users > (id,email,encrypted_password,sign_in_count,created_at,updated_at,code,company_id) > VALUES (3,'[email protected]','password','0','2016-05-03 > 00:01:01','2016-05-03 00:01:01',default,'2'); - *NO PASS* Se alguém puder ajudar... obrigado.
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
