Ir para conteúdo

POWERED BY:

Arquivado

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

luan_alves

trigger para atualizar timestamp e autoincrement

Recommended Posts

Boa tarde á todos,

 

Tenho uma dúvida, como faço para criar uma trigger que depois de receber uma alteração ela também faça um "update" na mesma tabela só que deverá atualizar a data da alteração ?

exemplo:

 

before update
update data_alteracao = CURRENT_TIMESTAMP

 

na mesma tabela existe uma coluna que faz o posicionamento das postagens, e este valor deveria ser autoincrementado, porém por regra o "autoincrement" só pode ser definido em um campo e o mesmo já é utilizado no id da tabela.

Como eu faço para adicionar um "autoincrement" com trigger no campo "posicao" quando esta nova postagem for adicionada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que seja isto.

 

Motta, é quase isso, o meu problema é que o "new.data_alteracao" esta com erro. Mas não tem problemas eu vou conseguir resolver.

 

Outra dúvida, você sabe se tem como utilizar uma trigger em várias tabelas ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta, é quase isso, o meu problema é que o "new.data_alteracao" esta com erro. Mas não tem problemas eu vou

conseguir resolver.

 

 

A síntaxe exata não sei, mas creio que funcione atribuir diretamente.

 

Outra dúvida, você sabe se tem como utilizar uma trigger em várias tabelas ?

 

 

Não que saiba, cadeira de barbeiro, uma para cada um ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A síntaxe exata não sei, mas creio que funcione atribuir diretamente.

 

 

 

Não que saiba, cadeira de barbeiro, uma para cada um ...

 

Gostei da sua resposta da cadeira de barbeiro.

KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK

 

Mas consegui resolver o problema .

 

Só tinha que dar set new.data_alteracao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voltei só para esclarecer como os scripts foram concluídos.

 

a primeira parte que era a data de alteração ficou assim.

 

DELIMITER $$

CREATE TRIGGER `banners_home_BUPD` BEFORE UPDATE ON banners_home FOR EACH ROW
-- Edit trigger body code below this line. Do not edit lines above this one
BEGIN
		SET NEW.data_alteracao = CURRENT_TIMESTAMP;
	END

 

A segunda que eu queria fazer uma sequencia de números para um determinado campo ficou assim:

Tive de criar uma tabela chamada Sequence que nela eu informo a tabela que eu quero pegar o número da sequencia.

 

DELIMITER $$
CREATE TRIGGER `galeria_BINS` BEFORE INSERT ON galeria FOR EACH ROW
	BEGIN
		DECLARE id INT DEFAULT 0;   -- variável declarada
		INSERT INTO sequence (idinformacoes,tabela) VALUES (1,'galeria'); -- INSERI A INFORMAÇÃO NA TABELA SEQUENCE
		
		SELECT idsequence FROM sequence WHERE  tabela = 'galeria' ORDER BY idsequence DESC LIMIT 1 INTO id;	-- valor setado com INTO
		SET NEW.posicao = id;
	END$$
DELIMITER ;

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.