每一款软件从V1.0到V*.*的更迭是不断完善的过程,使用者在这个过程中需要不断的追随她的脚步,不然就会被out。

--序

1、前言

准备将一个数据库(test.sql)从MySQL数据库服务器导出来,导入到本地的MySQl数据库上面用于测试数据。

2、问题描述:

DROP TABLE IF EXISTS `device`;

CREATE TABLE `device`(

    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

    `createtime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

    `updatetime` datetime NOT NULL COMMENT '最后更新时间',

    PRIMARY KEY (`id`)

)

COMMENT='设备表'

COLLATE='utf8_general_ci'

ENGINE=InnoDB;

在服务器上面运行结果:

MySql使用CURRENT_TIMESTAMP_mysql数据库

在本地运行:

MySql使用CURRENT_TIMESTAMP_问题分析_02

3、问题分析:

两个数据库都是我创建的,服务器数据库不是我安装的,两个念头出现在我脑子里面,配置问题,版本问题。

3.1、数据库配置问题:

查看数据库服务器属性:

MySql使用CURRENT_TIMESTAMP_服务器_03

本地数据库属性:

MySql使用CURRENT_TIMESTAMP_问题分析_04

字符集都是一样的。

3.2、数据库版本问题:

然后通过命令行查看版本,服务器的版本:

MySql使用CURRENT_TIMESTAMP_数据库_05

本地版本:

MySql使用CURRENT_TIMESTAMP_mysql数据库_06

网上查询:

MySql使用CURRENT_TIMESTAMP_mysql数据库_07

这个结果有一定的帮助:

datetime ----à timestamp

4、问题解决:

其实在上面的链接里面看出来,需要将datatime换成timestamp,但是还是有问题:

MySql使用CURRENT_TIMESTAMP_数据库_08

大致意思就是timestamp列只能有一个使用current_timestamp,其他timestamp只能使用DEFAULT或者ON UPDATE。

 

最终我想实现的是记录一条记录的创建时间和修改时间。具体方法参考链接。