Ir para conteúdo
Fórum CódigoFonte.net
Entre para seguir isso  
Marcel Costa

Trigger AFTER

Recommended Posts

Preciso pegar um valor que esta em uma outra tabela, para conctenar com a matricula

Ex.: Matricula antiga: 0123456

Matricula nova: sal0123456

Esse sal > vem do municipio "SALvador"

Para pegar o nome do Municipio do campus, fiz uma função, que segue abaixo:

CREATE OR REPLACE FUNCTION matricula_aluno(mat_aluno character varying)

RETURNS character varying AS

$BODY$

DECLARE

municipio character varying(20);

matriculanova character varying(20);

BEGIN

Select into municipio mun."MUN_NOME" From aluno a JOIN curso c

ON a.curs_cod = c.curs_cod

JOIN campus cm

ON c.camp_cod = cm.camp_cod

JOIN municipios mun

ON cm.mun_cod = mun."MUN_COD"

Where alun_matricula = mat_aluno;

select into municipio substring(municipio from 0 for 4);

select into municipio lower(municipio);

matriculanova := municipio||mat_aluno;

return matriculanova;

END;

$BODY$

LANGUAGE plpgsql VOLATILE

COST 100;

ALTER FUNCTION matricula_aluno(character varying) OWNER TO postgres;

Essa função, faz todo um select, que chega ate o MUN_NOME, quando o alun_matricula = parametro passado pela função.

Essa função esta funcionando. Pega as 3 primeiras letras do municipio e conctena com o número de matricula.

Só que, essa função soh funciona se eu colocar a TRIGGER como AFTER. Mas, com a trigger em AFTER, a função não consegue inserir no registro.

O que eu posso fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Visitante
Responder

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...
Entre para seguir isso  

×
×
  • Criar Novo...