位置: 编程技术 - 正文
推荐整理分享MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated错误,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
安装MySQL时,有warning:
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
其原因是从 5.6开始,timestamp 的默认行为已经是 deprecated 了。
在MySQL 5.6.6之前,TIMESTAMP的默认行为:
TIMESTAMP列如果没有明确声明NULL属性,默认为NOT NULL。(而其他数据类型,如果没有显示声明为NOT NULL,则允许NULL值。)设置TIMESTAMP的列值为NULL,会自动存储为当前timestamp。表中的第一个TIMESTAMP列,如果没有声明NULL属性、DEFAULT或者 ON UPDATE,会自动分配 DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP 属性。表中第二个TIMESTAMP列,如果没有声明为NULL或者DEFAULT子句,默认自动分配'-- ::′。插入行时没有指明改列的值,该列默认分配'-- ::′,且没有警告。
要关闭警告,需要加入下面的参数:
重启MySQL后错误消失,这时TIMESTAMP的行为如下:
TIMESTAMP如果没有显示声明NOT NULL,是允许NULL值的,可以直接设置改列为NULL,而没有默认填充行为。TIMESTAMP不会默认分配DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP属性。声明为NOT NULL且没有默认子句的TIMESTAMP列是没有默认值的。往数据表中插入列,又没有给TIMESTAMP列赋值时,如果是严格SQL模式,会抛出一 个错误,如果严格SQL模式没有启用,该列会赋值为'-- ::′,同时出现一个警告。(这和MySQL处理其他时间类型数据一样,如DATETIME)(参见: explicit_defaults_for_timestamp 关闭了 timestamp 类型字段锁拥有的一些会让人感到奇怪的默认行为,加入了该参数之后,如果还需要为 timestamp类型的字段指定默认行为,那么就需要显示的在创建表时显示的指定。explicit_defaults_for_timestamp 也就是这个意思:显示指定默认值为timestamp类型的字段。
简单的MySQL备份与还原方法分享 为了安全起见,需要经常对数据库作备份,或者还原。对于MySQL而言,最方便的方法可能就是用phpMyAdmin的导出、导入功能了,但如果你的数据库体积比
MySQL 5.6 中 TIMESTAMP 的变化分析 在MySQL5.6.6之前,TIMESTAMP的默认行为:■TIMESTAMP列如果没有明确声明NULL属性,默认为NOTNULL。(而其他数据类型,如果没有显示声明为NOTNULL,则允许NULL值
MySQL备份与恢复之保证数据一致性(5) 在上一篇文章中我们提到热拷贝(MySQL备份与恢复之热拷贝),热拷贝也就是在MySQL或者其他数据库服务在运行的情况下使用mysqlhotcopy命令进行备份。这
标签: MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated错误
本文链接地址:https://www.jiuchutong.com/biancheng/347959.html 转载请保留说明!友情链接: 武汉网站建设