| 您的当前位置:首页 --> MYSQL教程 |
| MySQL 5.6 中 TIMESTAMP 的变化分析 |
| 浏览次数:901 关键词 ( ) |
|
在MySQL 5.6.6之前,TIMESTAMP的默认行为: ■TIMESTAMP列如果没有明确声明NULL属性,默认为NOT NULL。(而其他数据类型,如果没有显示声明为NOT NULL,则允许NULL值。)设置TIMESTAMP的列值为NULL,会自动存储为当前timestamp。
2列TIMESTAMP未声明为NULL的默认行为 从MySQL5.6.6开始这种默认设置的方法被废弃了。在MySQL启动时会出现以下警告: [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (seedocumentation for more details). 关闭警告,在my.cnf中加入 [mysqld] explicit_defaults_for_timestamp=true 重启MySQL后错误消失,这时TIMESTAMP的行为如下: ■TIMESTAMP如果没有显示声明NOT NULL,是允许NULL值的,可以直接设置改列为NULL,而没有默认填充行为。
TIMESTAMP 不设置是否为NULL ■声明为NOT NULL且没有默认子句的TIMESTAMP列是没有默认值的。往数据表中插入列,又没有给TIMESTAMP列赋值时,如果是严格SQL模式,会抛出一个错误,如果严格SQL模式没有启用,该列会赋值为'0000-00-00 00:00:00′,同时出现一个警告。(这和MySQL处理其他时间类型数据一样,如DATETIME)
TIMESTAMP 默认设置为NOT NULL Note: 以上内容和存储引擎选择无关。 |
| 下载次数:8 |
| 下载地址:点击下载 |
| 本资源为程序自动采集,如有侵权请联系我们移除 admin#80vps.com 来信请将#替换为@ |
| 下一条 SQL计算timestamp的差值的方法 上一条 MySQL备份与恢复之保证数据一致性(5) |