sqlite3中timestamp使用

timestamp使用

一. timestamp两种属性:
自动初始化: 此行为只在第一次写入数据时,怎么把时间设为当前时间. (DEFAULT CURRENT_TIMESTAMP)
自动更新: 此行为在修改资料时,会自动帮你把值修改为当前时间. (ON UPDATE CURRENT_TIMESTAMP)

 

二. 四种状态:
由上面两种属性延伸出四种状态
1. 自动初始化以及自动更新 (timestamp字段的数据默认就是此行为)
实现sql: ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP


2.只做初始化,更新时不自动更新
实现sql: ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP


3.只做自动更新,不做初始化
实现sql: ts TIMESTAMP DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP


4. 什么都不做(建议这种情况,数据类型就使用datetime)

官方文档的说明

注:DEFAULT-->DEFAULT CURRENT_TIMESTAMP

      ON UPDATE -->ON UPDATE CURRENT_TIMESTAMP

 

在CREATE TABLE语句中,第1个TIMESTAMP列可以用下面的 任何一种方式声明:

1: 如果定义时DEFAULT 和ON UPDATE 子句都有,列值为默认使用当前的时间戳,并且自动更新。

2: 如果不使用DEFAULT和ON UPDATE子句,那么它等同于DEFAULT ON UPD

你可能感兴趣的:(数据库,java,c/c++)