mysql设置timpstamp的默认值为 '0000-00-00 00:00:00' 时报错

Posted mediocreworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql设置timpstamp的默认值为 '0000-00-00 00:00:00' 时报错相关的知识,希望对你有一定的参考价值。

问题:mysql设置timpstamp的默认值为 ‘0000-00-00 00:00:00‘ 时报错:

ERROR 1067 (42000): Invalid default value for ‘updateaDate‘

原因和解决方法:

# sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE
,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 默认是
这个配置,这个配置不允许日期字段的默认值为‘0000-00-00 00:00:00‘,所以改成了下面的配置:

sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_
AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

 

记得修改完后,重启mysql服务:  /etc/init.d/mysqld restart     或者  service mysqld restart。 两个命令的效果一样。

 

注:一般在my.ini或my.cnf下配置该sql-mode,

linux下的为my.cnf,其路径一般为 /etc/my.cnf  或 /etc/mysql/my.cnf 或 /usr/my.cnf

win下的是my.ini,一般会在安装目录的根目录. 

以上是关于mysql设置timpstamp的默认值为 '0000-00-00 00:00:00' 时报错的主要内容,如果未能解决你的问题,请参考以下文章

mysql 中怎么设置默认值为系统日期

mysql建表时怎样设置datetime类型的字段默认值为不自动更新的系统当前时间

mysql 如何设置date类型的默认值为当前日期?

修改mysql数据库字段内容默认值为当前时间

MySql怎么给列设置默认值 mysql修改默认值

Mysql---完整性约束