Criar TRIGGER MySQL com a Logica abaixo.

MySQL

28/05/2018

Bom dia.
Preciso criar um Trigger pra cada titulo que for repetido, o livro_cod incrementar mais 1, porem não podemos deixar como auto increment, se não ele fica igual o resumo_cod. Estrutura da tabela abaixo. Essa tabela não vai ser alterada (Apenas pelo trigger), apenas inserção. Aceito dicas para fazer de outra maneira.


Create table Resumos
(
resumo_cod int primary key AUTO_INCREMENT
, texto_resumo varchar (255) not null
, usuario_cod int not null -- referenciar usuarios
, tag varchar (15)
, titulo varchar (15) not null
, livro_cod int -- Criar Trigger
, produto_cod int not null -- referenciar produtos
, categoria varchar (6) not null -- referenciar legendas
, data_criacao datetime
, valido varchar (6) -- referenciar legendas -- Aceita campo 1 - 2 - 3 -- NEW
);

CREATE TRIGGER TRG_InsereCodLivro BEFORE INSERT
ON Resumos
FOR EACH ROW
BEGIN/*
-- ** LOGICA ** -- A trigger deve inserir um valor no campo livro_cod, a cada titulo que for repetido;


declarar variavel para titulo;

select * from tabela where titulo = variavel;

<b>SE tem resultados, fazer update no campo livro_cod += 1;</b>

*/
END
Daniel Lucas

Daniel Lucas

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

28/05/2018

deve ser algo assim:

CREATE TRIGGER TRG_InsereCodLivro BEFORE INSERT ON Resumos
FOR EACH ROW SET NEW.livro_cod = (select coalesce(max(livro_cod),0)+1 from Resumos where titulo = NEW.titulo);
GOSTEI 0
POSTAR