关于MySQL中的timestamp类型
来源:互联网 发布:天刀回归活动网络繁忙 编辑:程序博客网 时间:2024/06/08 17:39
timestamp的显示格式与datetime相同,格式都为YYYY-MM-DD HH:MM:SS
那mysql数据库为何需要两个相同的类型呢?
答:首先是因为 timestamp占用的存储空间比datetime要少,但是我觉得更重要的是timestamp具有自动初始化和自动更新的功能。
timestamp具有:
1)自动初始化
2)自动更新 的功能
如过你想在修改数据列的时候 ,数据库能帮你自动修改 字段 modify_time列,那把modify_time定义为timestamp类型最合适不过了。而且这样的情况在我们的应用程序中很常见,如用户自己修改联系信息,如果有个修改时间字段,那这个修改时间就可以定义为timestamp类型。
虽然timestamp列类型具有自动初始化和自动更新的功能,你可以把自动初始化或自动更新,或者两者都选给一个列,但是你要记住只是一个列
你不能把一个列 定义为自动初始化,而另外的列定义为自动更新,即这两个属性只能针对数据库表里的某一个列。
(经过测试 这个类型和 数据列定义为 NULL 或 NOT NULL有关系)
测试组一: 数据列定义为允许 NULL
`modify_time` timestamp NULL DEFAULT NULL,
从结果来看,插入数据 modify_time列为空,而且不会自动更新。
`modify_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
从运行结果来看 modify_time列会自动初始化,但不会自动更新
`modify_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
这个不用猜,肯定是 即会自动初始化又会自动更新。
测试组二:数据列定义为不允许 NULL
`modify_time` timestamp NOT NULL,
从结果看 这个 即会自动初始化又会自动更新,就是说当我们定义一个timestamp的列为not null时,效果等同于 default current_timestamp on update current_timestamp;
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
从结果看 只会自动 初始化 不会自动更新
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
这个不用说 ,即会自动初始化又会自动更新。
结论很简单:只要记住 当timestamp数据量定义为 not null ,而且没有默认值和 on update current_timestamp,其效果等同于 not null default current_timestamp on update current_timestamp
- 关于MySQL中的timestamp类型
- MySQL中的TIMESTAMP类型和PHP中的timestamp不一样
- mysql 关于 timestamp类型 版本问题
- MySql中的Timestamp类型字段的使用
- MySQL数据库中的timestamp类型与时区
- mysql中的TIMESTAMP类型时间范围
- MySQL中的时间类型转换timestamp
- MYSQL中TIMESTAMP类型
- MySql的timestamp类型
- MySQL TIMESTAMP类型
- Mysql timestamp 类型
- mysql的timestamp类型
- Oracle中的TIMESTAMP类型
- 关于mysql时间类型datetime与timestamp范围
- 关于mysql时间类型datetime与timestamp范围
- 关于mysql时间类型datetime与timestamp范围
- 关于MySQL的字段类型为timestamp的坑
- MySQL数据库中的Date,DateTime和TimeStamp类型
- 岁月
- CTL_CODE 定义说明(重要理解内容)
- UITableView 美化- 增加一个好看的背景
- 文件适配器(1)
- 产生随机数
- 关于MySQL中的timestamp类型
- 闲着……学学写写汇编(只贴代码)(5)
- 转——韩寒:一个流传多年的谣言
- 编译Linux内核
- 文件适配器(2)
- Python类、模块、包
- js调用后台函数或按钮事件
- 文件适配器(3)
- 应用层程序与驱动层即内核程序通信示例DeviceIoControl