Desenvolva um gatilho que determine o novo valor de uma chave primária a cada linha da tabela editoras, sendo que os valores formam uma PA de razão 1. Analise Tabela: editoras Evento: insert Momento: antes do evento Nome do Gatilho: editorasBI (nome da função de função no PG) Nome do gatilho na tabela: BIeditoras Ação: Executar uma operação que determine o máximo valor da PK da tabela. Somar uma unidade no valor máximo e permitir a gravação do registro com o novo valor de PK determinado na ação. Algoritmo SELECT MAX(pkeditora)+1 into vproxpk from editoras; Se vproxpk IS NULL então NovaLinha.pkeditora=1; senão NovaLinha.pkeditora=vproxpk; FimSe retuno Novalinha Código da Função de Gatilho CREATE FUNCTION public."editorasBI"() RETURNS trigger LANGUAGE 'plpgsql' COST 100 VOLATILE NOT LEAKPROOF AS $BODY$ declare vproxpk smallint; BEGIN SELECT MAX(pkeditora)+1 into vproxpk from editoras; IF ( vproxpk IS NULL ) THEN NEW.pkeditora=1; ELSE NEW.pkeditora=vproxpk; END IF; END $BODY$; ALTER FUNCTION public."editorasBI"() OWNER TO postgres; -- gatilho na tabela. CREATE TRIGGER "BIeditoras" BEFORE INSERT ON public.editoras FOR EACH ROW EXECUTE PROCEDURE public."editorasBI"();