Foguire 0 Denunciar post Postado Junho 23, 2007 Eu estou utilizando uma coluna timestamp null que uso com now() quando dou insert para gravar data e horario do registro, até ai tudo bem, tudo legal... Problema é na hora que uso o update, a data quero que seja do registro inicial, mas ele grava a data do update por cima da antiga sem eu mandar. Alguem saberia me dizer porque isso acontece? o que provoca isso? algum atributo que defini na coluna? ou é somente a forma de usar o comando update? Vlw http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Junho 24, 2007 Diz o manual: A coluna do tipo TIMESTAMP possui comportamento e propriedade variado, dependendo da versão do MySQL e do modo SQL que o servidor está executando. Comportamento do TIMESTAMP ao executar no modo MAXDBQuando o MySQL está executando no modo SQPDB, o TIMESTAMP comporta como DATETIME. Nenhuma atualização automática da coluna TIMESTAMP ocorre, como descrito no parágrafo seguinte. O MySQL pode ser executado no modo MAXDB a partir da versão 4.1.1. See section 4.1.1 Opções de Linha de Comando do mysqld. Comportamento do TIMESTAMP quando não está executando no modo MAXDBO tipo de campo TIMESTAMP fornece um tipo que pode ser usado para, automaticamente, marcar operações INSERT or UPDATE com a data e hora atual. Se você tiver multiplas colunas TIMESTAMP, só a primeira é atualizada automaticamente. Atualizações automaticas da primeira coluna TIMESTAMP ocorrem sob qualquer uma das seguintes condições: A coluna não é explicitamente especificada em uma instrução INSERT ou LOAD DATA INFILE. A coluna não é explicitamente especificada em uma instrução UPDATE e e alguma outra coluna muda o valor. (Note que um UPDATE que coloca em uma coluna o mesmo valor que ele já possui não irá causar a atualização da coluna TIMESTAMP, porque se você atribui a uma coluna o seu valor atual, MySQL ignora a atualização para maior eficiência). Você define explicitamente a uma coluna TIMESTAMP o valor NULL. Outras colunas TIMESTAMP, além da primeira podem ser definidas com a data e hora atuais. Basta defini-las com NULL ou NOW() Compartilhar este post Link para o post Compartilhar em outros sites
Foguire 0 Denunciar post Postado Junho 24, 2007 Diz o manual: A coluna do tipo TIMESTAMP possui comportamento e propriedade variado, dependendo da versão do MySQL e do modo SQL que o servidor está executando. Comportamento do TIMESTAMP ao executar no modo MAXDBQuando o MySQL está executando no modo SQPDB, o TIMESTAMP comporta como DATETIME. Nenhuma atualização automática da coluna TIMESTAMP ocorre, como descrito no parágrafo seguinte. O MySQL pode ser executado no modo MAXDB a partir da versão 4.1.1. See section 4.1.1 Opções de Linha de Comando do mysqld. Comportamento do TIMESTAMP quando não está executando no modo MAXDBO tipo de campo TIMESTAMP fornece um tipo que pode ser usado para, automaticamente, marcar operações INSERT or UPDATE com a data e hora atual. Se você tiver multiplas colunas TIMESTAMP, só a primeira é atualizada automaticamente. Atualizações automaticas da primeira coluna TIMESTAMP ocorrem sob qualquer uma das seguintes condições: A coluna não é explicitamente especificada em uma instrução INSERT ou LOAD DATA INFILE. A coluna não é explicitamente especificada em uma instrução UPDATE e e alguma outra coluna muda o valor. (Note que um UPDATE que coloca em uma coluna o mesmo valor que ele já possui não irá causar a atualização da coluna TIMESTAMP, porque se você atribui a uma coluna o seu valor atual, MySQL ignora a atualização para maior eficiência). Você define explicitamente a uma coluna TIMESTAMP o valor NULL. Outras colunas TIMESTAMP, além da primeira podem ser definidas com a data e hora atuais. Basta defini-las com NULL ou NOW() Opa, muito obrigado viu. http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif Compartilhar este post Link para o post Compartilhar em outros sites