acborba Postado Dezembro 18, 2008 Denunciar Share Postado Dezembro 18, 2008 Pessoal tenho uma tabela assim:PerguntaidPergunta:integer - PKidGrupo:integer - FKativa:booldata_2:timegostaria que toda vez que fosse criado uma nova pergunta, seje inserido automaticamente no campo data_2 a data que foi criado a pergunta (data do sistema). Algo do tipo auto increment. Isso é possível??? obrigado Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Dezembro 18, 2008 Denunciar Share Postado Dezembro 18, 2008 Oi, 'acborba'!Mude o tipo do campo para para TIMESTAMP NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP Se não houver outro campo com esta característica ele automaticamente atualizará a data do campo sempre que este registro sofrer modificação.No seu caso como é só na criação da pergunta, o campo pode ser criado como TIMESTAMP, somente. E a atualização da data pode ser efetuada através de um trigger before insert usando a função NOW() que retorna um timestamp. Link para o comentário Compartilhar em outros sites More sharing options...
0 acborba Postado Dezembro 18, 2008 Autor Denunciar Share Postado Dezembro 18, 2008 Opa!Cara eu fiz o seguinte (não sou muito bom com triggers):CREATE TRIGGER data BEFORE INSERT ON pergunta ROW EXECUTE PROCEDURE NOW()seria isso? Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Dezembro 18, 2008 Denunciar Share Postado Dezembro 18, 2008 Opa!Cara eu fiz o seguinte (não sou muito bom com triggers):CREATE TRIGGER data BEFORE INSERT ON pergunta ROW EXECUTE PROCEDURE NOW() seria isso? Não. Está errado. Faça assim:DELIMITER $$; DROP TRIGGER `<seubanco>`.`<suatabela>`$$ create trigger `<suatabela>` BEFORE INSERT on `<seubanco>` for each row BEGIN SET NEW.<seucampo> = NOW(); END; $$ DELIMITER;$$ Link para o comentário Compartilhar em outros sites More sharing options...
0 acborba Postado Dezembro 18, 2008 Autor Denunciar Share Postado Dezembro 18, 2008 Não funcionou deu erro:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE trigger pergunta BEFORE INSERT ON sistema FOR EACH ROW BEGIN SET NEW' at line 2 Estou fazendo como você passou: DROP trigger sistema.pergunta CREATE trigger pergunta BEFORE INSERT ON sistema FOR EACH ROW BEGIN SET NEW.dat = NOW(); Link para o comentário Compartilhar em outros sites More sharing options...
0 acborba Postado Dezembro 18, 2008 Autor Denunciar Share Postado Dezembro 18, 2008 Problema resolvido:CREATE TRIGGER inserir_dt BEFORE INSERT ON pergunta FOR EACH ROW SET NEW.dat = NOW( );Aonde diz no seu código '<seubanco>' na verdade seria '<suatabela>' e onde diz '<suatabela>' seria '<nomedatrigger>'. E no final não vai o BEGIN. Mas vlw pela juda!!! :lol: Link para o comentário Compartilhar em outros sites More sharing options...
0 acborba Postado Dezembro 18, 2008 Autor Denunciar Share Postado Dezembro 18, 2008 Inserir só a data ele faz?? porque desta forma ele inserir data e hora. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Dezembro 18, 2008 Denunciar Share Postado Dezembro 18, 2008 Inserir só a data ele faz?? porque desta forma ele inserir data e hora.Então mantenha o campo como date e deixe o trigger como está. Ele faz a conversão. Link para o comentário Compartilhar em outros sites More sharing options...
0 acborba Postado Dezembro 18, 2008 Autor Denunciar Share Postado Dezembro 18, 2008 Inserir só a data ele faz?? porque desta forma ele inserir data e hora.Então mantenha o campo como date e deixe o trigger como está. Ele faz a conversão.OK beleza. Vlw pela juda problema Resolvido! Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
acborba
Pessoal tenho uma tabela assim:
Pergunta
idPergunta:integer - PK
idGrupo:integer - FK
ativa:bool
data_2:time
gostaria que toda vez que fosse criado uma nova pergunta, seje inserido automaticamente no campo data_2 a data que foi criado a pergunta (data do sistema). Algo do tipo auto increment. Isso é possível???
obrigado
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados