La columna de marca de tiempo de MySQL se actualiza inexplicablemente

       ¿Por qué se actualiza inexplicablemente, porque el valor predeterminado no está establecido para la tabla y el campo de actualización no actualiza la columna? Se encuentra que después de ejecutar la declaración de actualización, el tiempo se convierte en el tiempo para ejecutar la actualización de sql.
        Origen: la tabla de diseño está diseñada por powerdesiner. Después de completar el diseño, use el sql de vista previa para construir directamente la tabla
 

create table s_config
(
   config_id            int(11) not null auto_increment comment '主键',
   config_type          varchar(30) comment '配置是属于什么业务',
   config_name          varchar(100) comment '配置名称',
   config_key           varchar(200) comment '配置key',
   config_value         varchar(200) comment '配置的值',
   valid_sts            enum('Y','N') comment '有效状态',
   config_desc          varchar(100) comment '配置的详细描述',
   create_datetime      timestamp comment '创建时间',
   create_user          varchar(30) comment '创建人',
   last_chg_datetime    timestamp comment '最后一次修改时间',
   last_chg_user        varchar(30) comment '最后一次修改人',
   primary key (config_id)
);

        La declaración de creación de la tabla se ejecuta con éxito y comienza el desarrollo.Al ejecutar el sql de actualización, el last_chg_datetime se actualiza normalmente, pero el create_datetime también se actualiza directamente, aunque no está configurado en la actualización.

        Use MySQL versión 5.7.26, después de crear la tabla, la estructura real de la tabla es así

        Se encontró que el valor predeterminado se establece automáticamente, por lo que algunos usan el valor predeterminado al crear una tabla y algunas configuraciones de visualización son mejores. Las especificaciones siguen siendo importantes.

        Después de modificar la declaración de creación de tabla

CREATE TABLE `s_schedule_log` (
  `log_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'log主健',
  `job_id` int(11) DEFAULT NULL COMMENT '任务id',
  `job_name` varchar(100) DEFAULT NULL COMMENT '任务名称',
  `execute_result` varchar(10) DEFAULT NULL COMMENT '执行结果。字典EXECUTE_RESULT',
  `result_info` varchar(255) DEFAULT NULL COMMENT '执行结果信息',
  `start_time` TIMESTAMP NULL DEFAULT NULL COMMENT '开始时间',
  `end_time` TIMESTAMP NULL DEFAULT NULL COMMENT '结束时间',
  `error_msg` varchar(255) DEFAULT NULL COMMENT '执行失败时的错误信息',
  PRIMARY KEY (`log_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='定时任务执行日志'

        Crear tabla completada



Referencia: la configuración del valor predeterminado de la marca de tiempo en el valor predeterminado de la marca de tiempo blog-CSDN blog_mysql de MySQL_lxxfirst

 

MySQL :: Manual de referencia de MySQL 5.7 :: 11.2.6 Inicialización y actualización automáticas para TIMESTAMP y DATETIME

Supongo que te gusta

Origin blog.csdn.net/u011471105/article/details/124726047
Recomendado
Clasificación