Ir para conteúdo

POWERED BY:

Arquivado

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

Icaro_Monteiro

[Resolvido] Tentando criar uma trigger com um concat

Recommended Posts

Pessoal, estou tentando criar uma trigger para concatenar dois campos e setar este valor em outro.

 

Tenho as tabelas Grupos e Subgrupos. O campo subgrupos.sub_numero seria o resultado do concat de gru_codigo (fk de grupos) + sub_codigo (campo auto increment com lpad para acrescentar os zeros à esquerda).

 

Não estou conseguindo fazer funcionar... Segue o código:

 

CREATE TRIGGER subgruposBF BEFORE INSERT ON subgrupos

FOR EACH ROW BEGIN

SET NEW.sub_numero = CONCAT(NEW.gru_codigo,LPAD(NEW.sub_codigo, '2', '0'));

END

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, estou tentando criar uma trigger para concatenar dois campos e setar este valor em outro.

 

Tenho as tabelas Grupos e Subgrupos. O campo subgrupos.sub_numero seria o resultado do concat de gru_codigo (fk de grupos) + sub_codigo (campo auto increment com lpad para acrescentar os zeros à esquerda).

 

Não estou conseguindo fazer funcionar... Segue o código:

 

CREATE TRIGGER subgruposBF BEFORE INSERT ON subgrupos

FOR EACH ROW BEGIN

SET NEW.sub_numero = CONCAT(NEW.gru_codigo,LPAD(NEW.sub_codigo, '2', '0'));

END

 

Conseguí resolver. Compartilhando o código caso alguém precise...

 

CREATE TRIGGER subgruposBF BEFORE INSERT ON subgrupos

FOR EACH ROW

SET NEW.sub_numero = CONCAT(NEW.gru_codigo,LPAD((SELECT COALESCE( MAX( LAST_INSERT_ID( sub_codigo ) ) , 0 ) +1

FROM subgrupos), '2', '0'));

 

Onde:

subgruposBF = Nome da trigger

subgrupos = tabela onde vai ser criada a trigger

sub_numero = campo q armazenará o resultado

gru_codigo e sub_codigo = campos q serão concatenados

 

Usei o LPAD para adicionar 0(zeros) à esquera do valor de sub_codigo q é auto increment. Dei um SELECT COALESCE( MAX( LAST_INSERT_ID( sub_codigo ) ) , 0 ) +1 para pegar sempre o último valor de sub_codigo e no caso dele ser 0, somar 1( acontece no primeiro registro).

 

Essa trigger será útil para gerar um código de produto por exemplo, com base em um código de categoria. Espero q sirva para quem precisar.

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.