Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O tipo de coluna MySQL TIMESTAMP inclui implicitamente NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP


No MySQL 5.6.5 existem várias atualizações sobre essa inicialização, você pode ver neste ligação (Propriedades de carimbo de data/hora automática antes do MySQL 5.6.5).

Se você estiver usando MySQL <=5.6.5 , para ignorar essa inicialização, você precisa definir o valor DEFAULT como 0 ou NULL com NULL permitido.
CREATE TABLE tbl
(
    field1 TIMESTAMP DEFAULT 0,
    field2 TIMESTAMP NULL DEFAULT NULL
)

Se você estiver usando MySQL>=5.6.6 , existe um parâmetro chamado explicit_defaults_for_timestamp que está desabilitado por padrão. Você pode habilitar esta configuração ou definir o valor DEFAULT para 0 ou NULL, mesma abordagem para versões anteriores do MySQL.

Se você estiver usando MySQL>=8.0.2 , então explicit_defaults_for_timestamp está ativado por padrão. Isso desativa o comportamento não padrão (felizmente). Além disso, o MySQL gera um aviso quando você desabilita essa configuração. Então, por exemplo, se você não definir o valor DEFAULT para um TIMESTAMP coluna, ela é definida automaticamente como NULL .