Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Existe data "auto increment"?


acborba

Pergunta

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

  • 0

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

  • 0
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

  • 0

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

  • 0

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

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...