mysql(自动添加系统时间)timestamp类型字段的CURRENT_TIMESTAMP与ON UPDATE CURRENT_TIMESTAMP属性

timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下:

1.CURRENT_TIMESTAMP

当要向数据库执行insert操作时,如果有个timestamp字段属性设为

CURRENT_TIMESTAMP,则无论这个字段有木有set值都插入当前系统时间

2.ON UPDATE CURRENT_TIMESTAMP

当执行update操作是,并且字段有ON UPDATE CURRENT_TIMESTAMP属性。则字段无论值有没有变化,他的值也会跟着更新为当前UPDATE操作时的时间。

TIMESTAMP的变体
1.TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

在创建新记录和修改现有记录的时候都对这个数据列刷新

2.TIMESTAMP DEFAULT CURRENT_TIMESTAMP

在创建新记录的时候把这个字段设置为当前时间,但以后修改时,不再刷新它

3.TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

在创建新记录的时候把这个字段设置为0,以后修改时刷新它

4.TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss’ ON UPDATE CURRENT_TIMESTAMP

在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它

使用触发器来替代:

CREATE TABLE `example` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`lastUpdated` DATETIME NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
DROP TRIGGER IF EXISTS `update_example_trigger`;
DELIMITER //
CREATE TRIGGER `update_example_trigger` BEFORE UPDATE ON `example`
FOR EACH ROW SET NEW.`lastUpdated` = NOW()
//
DELIMITER ;
————————————————
版权声明:本文为CSDN博主「杨西瓜」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33862644/article/details/83090847

原文地址:https://www.cnblogs.com/XiaoF0725/p/11562889.html

时间: 2024-08-16 12:48:54

mysql(自动添加系统时间)timestamp类型字段的CURRENT_TIMESTAMP与ON UPDATE CURRENT_TIMESTAMP属性的相关文章

mysql timestamp类型字段的CURRENT_TIMESTAMP与ON UPDATE CURRENT_TIMESTAMP属性

timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下: 1.CURRENT_TIMESTAMP 当要向数据库执行insert操作时,如果有个timestamp字段属性设为 CURRENT_TIMESTAMP,则无论这个字段有木有set值都插入当前系统时间 2.ON UPDATE CURRENT_TIMESTAMP 当执行update操作是,并且字段有ON UPDATE CURRENT_TIMESTA

MySQL 自动添加DateTime

数据库表里有个AddDate字段,DateTime类型,不能为空,添加记录时自动添加当前时间. 以前用MSSQL 在默认值写个 getdate()  就OK! MySQL写这个报错啊,迷糊! 查了一下还是可以解决的 呵呵 把datetime改成timestamp 默认值 CURRENT_TIMESTAMP 顺便再写两个 MS-SQL : (getdate()) ACCESS : Now()

配置NTP网络时间自动校对系统时间和创建备份文件

1 案例1:配置用户和组账号 1.1 问题 本例要求创建下列用户.组以及组的成员关系: 新建用户 alex,其用户ID为3456,密码是flectrag 创建一个名为 adminuser 的组 创建一个名为 natasha 的用户,其属于 adminuser 组,这个组是该用户的从属组 创建一个名为 harry 的用户,其属于 adminuser 组,这个组是该用户的从属组 创建一个名为 sarah 的用户,其在系统中没有可交互的 Shell,并且不是 adminuser 组的成员 natash

timestamp的两个属性:CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP

timestamp有两个属性,分别是CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下: 1. CURRENT_TIMESTAMP 当要向数据库执行insert操作时,如果有个timestamp字段属性设为 CURRENT_TIMESTAMP,则无论这个字段有没有set值都插入当前系统时间 2. ON UPDATE CURRENT_TIMESTAMP 当执行update操作是,并且字段有ON UPDATE CURRENT_TIME

我爱java系列之---【mysql自动更新创建时间和更新时间】

1.所有时间和日期的数据类型: 2.MySQL 脚本实现用例 --添加CreateTime 设置默认时间 CURRENT_TIMESTAMP ALTER TABLE `table_name` ADD COLUMN `CreateTime` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ; --修改CreateTime 设置默认时间 CURRENT_TIMESTAMP ALTER TABLE `table_name` MODIFY C

mysql now()函数调用系统时间不对修正方法

进入mysql命令行 方法1. 查看时区设置: show variables like '%zone%'; select @@time_zone; 两者保持与系统时间一致,如果不一致进行如下修改: vi /etc/my.cnf 定位到[mysqld]所在的位置,在它的下面加上default-time-zone = '+8:00'这一行,然后保存退出,重新启动. 方法2,. SET GLOBAL time_zone = '+8:00';

Mysql单个获取系统时间,年,月,日

Mysql数据库中获取系统时间,年,月,日单个获取 获取当前系统日期时间:select SYSDATE() AS 系统日期时间; 获取当前系统年月日:select current_date AS 年月日; 获取当前系统年份:select year(CURRENT_DATE) AS 年 ; 获取当前系统月份:select month(CURRENT_DATE) AS 月; 获取当前系统日:select day(CURRENT_DATE) AS 日; 获取当前系统时间:select time(SYS

Pycharm 新建文件时 自动添加作者时间等信息

可用的变量有: $ {PROJECT_NAME} - 当前项目的名称. $ {NAME} - 在文件创建过程中在"新建文件"对话框中指定的新文件的名称. $ {USER} - 当前用户的登录名. $ {DATE} - 当前的系统日期. $ {TIME} - 当前系统时间. $ {YEAR} - 今年. $ {MONTH} - 当月. $ {DAY} - 当月的当天. $ {HOUR} - 目前的小时. $ {MINUTE} - 当前分钟. $ {PRODUCT_NAME} - 将在其中

mysql insert 空字符报错 double类型字段插入空字符串时自动转为0

这样写就会报错:Data truncated for column 'x1' at row 1这种应该是版本问题,尤其是虚拟主机.把''改成null不会出错:x1是double类型的数据. INSERT INTO TEMPTABLE(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x3