sql >> Base de Datos >  >> RDS >> Mysql

El tipo de columna de MySQL TIMESTAMP incluye implícitamente NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

En MySQL 5.6.5 hay varias actualizaciones con respecto a esta inicialización, puede ver en este enlace (Propiedades de marca de tiempo automática antes de MySQL 5.6.5).

Si está utilizando MySQL <=5.6.5 , para ignorar esta inicialización, debe establecer el valor DEFAULT en 0 o NULL con NULL permitido.

CREATE TABLE tbl
(
    field1 TIMESTAMP DEFAULT 0,
    field2 TIMESTAMP NULL DEFAULT NULL
)

Si está utilizando MySQL>=5.6.6 , hay un parámetro llamado explicit_defaults_for_timestamp que está deshabilitado por defecto. Puede habilitar esta configuración o establecer el valor PREDETERMINADO en 0 o NULL, el mismo enfoque para versiones anteriores de MySQL.

Si está utilizando MySQL>=8.0.2 , luego explicit_defaults_for_timestamp está habilitado por defecto. Esto desactiva el comportamiento no estándar (afortunadamente). Además, MySQL genera una advertencia cuando deshabilita esta configuración. Entonces, por ejemplo, si no define el valor DEFAULT para un TIMESTAMP columna, se establece automáticamente en NULL .