您的位置:宽带测速网 > mysql教程 > 如何处理MySQL多个timestamp字段自动添加默认值的问题

如何处理MySQL多个timestamp字段自动添加默认值的问题

2025-06-24 08:04来源:互联网 [ ]

MySQL版本5.6.14

建表语句

    drop table live_shrimp_info;

    CREATE TABLE `live_shrimp_info` (

    `LiveID` bigint(20) NOT NULL COMMENT '直播ID',

    `SummonStartTime` timestamp(3) NOT NULL COMMENT '召唤期开始时间',

    `SummonEndTime` timestamp(3) NOT NULL COMMENT '召唤期结束时间',

    `CaptureStartTime` timestamp(3) NOT NULL COMMENT '捕获期开始时间',

    `CaptureEndTime` timestamp(3) NOT NULL COMMENT '捕获期结束时间',

    `CreateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

    `UpdateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

    PRIMARY KEY (`LiveID`)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ;



建表之后,使用 show create tablelive_shrimp_info; 查询

    CREATE TABLE `live_shrimp_info` (

    `LiveID` bigint(20) NOT NULL COMMENT '直播ID',

    `SummonStartTime` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '召唤期开始时间',

    `SummonEndTime` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' COMMENT '召唤期结束时间',

    `CaptureStartTime` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' COMMENT '捕获期开始时间',

    `CaptureEndTime` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' COMMENT '捕获期结束时间',

    `CreateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

    `UpdateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

    PRIMARY KEY (`LiveID`)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4


纳尼?怎么多了这么多默认值?
这就是MySQL搞笑所在,它认为你缺个默认值..就帮你加上了

第一个timestamp且not null的字段,MySQL会自动加上
DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
其他timestamp且not null的字段,MySQL会自动加上
DEFAULT '0000-00-00 00:00:00'