Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ilano

Criando Triggers

Recommended Posts

Olá pessoal,

Estou tentando criar uma trigger que possa atualizar o campo número de matrícula. Para isso tentei fazer da seguinte forma, mas sem sucesso:

 

 

CREATE TRIGGER `d_alunos_before_upd_tr` BEFORE UPDATE ON `d_alunos`
FOR EACH ROW
BEGIN
SET @pUnidade = OLD.Ud_Codigo;
SET @pCurso = OLD.Cur_Codigo;
SET @pTurma = ODL.Alu_TurmaIngresso;

SET @pMatricula = (SELECT CONCAT(CAST(LPAD(Ud_Codigo, 2, 0) AS CHAR(2)), ".",
CAST(LPAD(Cur_Codigo, 2, 0) AS CHAR(2)), ".",
SUBSTR(Alu_TurmaIngresso, 3, 2), ".",
SUBSTR(Alu_TurmaIngresso, 6, 1), ".",
CAST(LPAD(COUNT(*) + 1, 4, 0) AS CHAR(4))) AS CONTAR
FROM d_alunos

WHERE Ud_Codigo = @pUnidade AND Cur_Codigo = @pCurso AND Alu_TurmaIngresso = @pTurma

GROUP BY Ud_Codigo, Cur_Codigo, Alu_TurmaIngresso
);


OLD.Alu_Matricula = @pMatricula;

END;

 

Alguém poderia me dar uma ajuda nessa trigger?

Grato,

Ilano.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O deu deu de errado ?

 

Porque não utilizar um auto-increment ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Motta,

 

Desde já agradeço sua atenção. Respondendo às suas perguntas:

 

1. O que deu de errado?

Não está executando a trigger. E também não retorna mensagem alguma de erro.

 

2. Porque não utilizar um auto-increment?

Não posso criar um auto-increment pois os quatro últimos dígitos da matrícula terão que ser reiniciados a cada nova turma de ingresso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pergunta simples , não está fazendo no INSERT ?

 

A triger é de UPDATE

CREATE TRIGGER `d_alunos_before_upd_tr` BEFORE UPDATE ON `d_alunos`
FOR EACH ROW ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.