Mysql coluna DATE com valor padrão NOW()

O erro da foto eu corrigi. Era um trigger antigo que eu tinha criado para um teste e nem prestei atenção.

1 curtida

Eu corrigi o erro da foto, mas ainda não consegui implementar o valor padrão.

Alguma mensagem de erro ao definir o CURRENT_TIMESTAMP?

Já tentou alterar a coluna via linha de comando?

ALTER TABLE tabela MODIFY coluna DATE NOT NULL DEFAULT CURRENT_TIMESTAMP

Configure no seu banco o sql mode ALLOW_INVALID_DATES

Eu configurei assim:

SET SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

Porém a mesma mensagem apareceu.

Bem estranho, várias pesquisas que fiz diziam coisas sobre a versão da base, qual é a sua?

Algumas diziam que a partir da versão 5.6 o mysql aceita função como valor default :scream:

5.7.14. Alguma outra sugestão? Qualquer coisa, eu ainda tenho a solução do trigger.

Sinto muito, meu arsenal acabou :joy:

Tudo bem. Vou implementar a solução do trigger. Talvez alguém passe por esse tópico e saiba resolver, senão, eu continuo com essa solução. A não ser que os problemas de performance sejam muito altos.

Olhando a doc da sua versão, está dizendo que para campos TIMESTAMP e DATETIME, o valor pode ser inicializado sim e justamente usando CURRENT_TIMESTAMP :joy:

https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html

Há exemplos usando o DEFAULT 0, mas ele cita algo sobre as sql mode

Em outro post, o pessoal está indicando limpar o sql mode

Se for fazer, sugiro copiar o valor antigo e guardar em um notepad da vida…