从旧的数据数(MySQL 5.5)中导出数据库结构,timestamp字段的默认值为'1999-01-01 01:01:01',放到新的MySql(版本:5.7)中运行一直报错,看了好久才发现,原来是timestamp 5.7中不再将'1999-01-01 01:01:01'做为最小时间。最小时间为:1970-01-01 08:00:01,范围是1970-01-01 08:00:01 ~ 2038-01-19 11:14:07(时区)。所以将脚本中的时间改为'1970-01-01 08:00:01'即可保证时间一致。
顺便说一下,关于Timestamp的设置,有以下几种方式:
TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在创建新记录和修改现有记录的时候都对这个数据列刷新
TIMESTAMP DEFAULT CURRENT_TIMESTAMP 在创建新记录的时候把这个字段设置为当前时间,但以后修改时,不再刷新它
TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在创建新记录的时候把这个字段设置为0,以后修改时刷新它
TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss’ ON UPDATE CURRENT_TIMESTAMP 在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它
CREATE TABLE `codingsky` (
`myid` int(11) NOT NULL,
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`p_timew2` timestamp NOT NULL DEFAULT '1970-01-01 08:00:01'
)ENGINE=InnoDB DEFAULT CHARSET=utf-8
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8