mysql5.7 datetime 默认值0000-00-00 00:00:00出错
admin
2023-05-20 06:22:39
0

mysql5.7 datetime 默认值0000-00-00 00:00:00出错

实验环境:MySQL 5.7.17

使用wordpress的表wp_posts

mysql > CREATE TABLE `wp_posts` (
    ->   `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    ->   `post_author` bigint(20) unsigned NOT NULL DEFAULT '0',
    ->   `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    ->   `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    ->   `post_content` longtext NOT NULL,
    ->   `post_title` text NOT NULL,
    ->   `post_excerpt` text NOT NULL,
    ->   `post_status` varchar(20) NOT NULL DEFAULT 'publish',
    ->   `comment_status` varchar(20) NOT NULL DEFAULT 'open',
    ->   `ping_status` varchar(20) NOT NULL DEFAULT 'open',
    ->   `post_password` varchar(20) NOT NULL DEFAULT '',
    ->   `post_name` varchar(200) NOT NULL DEFAULT '',
    ->   `to_ping` text NOT NULL,
    ->   `pinged` text NOT NULL,
    ->   `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    ->   `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    ->   `post_content_filtered` longtext NOT NULL,
    ->   `post_parent` bigint(20) unsigned NOT NULL DEFAULT '0',
    ->   `guid` varchar(255) NOT NULL DEFAULT '',
    ->   `menu_order` int(11) NOT NULL DEFAULT '0',
    ->   `post_type` varchar(20) NOT NULL DEFAULT 'post',
    ->   `post_mime_type` varchar(100) NOT NULL DEFAULT '',
    ->   `comment_count` bigint(20) NOT NULL DEFAULT '0',
    ->   PRIMARY KEY (`ID`),
    ->   KEY `post_name` (`post_name`(191)),
    ->   KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`),
    ->   KEY `post_parent` (`post_parent`),
    ->   KEY `post_author` (`post_author`)
    -> ) ENGINE=innodb AUTO_INCREMENT=536 DEFAULT CHARSET=utf8;
ERROR 1067 (42000): Invalid default value for 'post_date'


出现以上问题:是因为mysql5.7版本后,sql_mode参数被设置了NO_ZERO_IN_DATE,NO_ZERO_DATE

mysql > show variables like 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                                                                     |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| 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 |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)


解决方法:

方法一:临时修改方法

mysql> set global  sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ;
mysql> set session  sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ;


方法二:永久修改方法,需要重启mysql服务:修改mysql的配置文件my.cnf,添加以下参数

 sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION //实际是去除NO_ZERO_IN_DATE,NO_ZERO_DATE

 

方法三:修改datetime的默认值

 



相关内容

热门资讯

国企信创数字化改造,部署 AI... 国企信创数字化改造,最难的不是把 AI 智能体“装上去”,而是让它在国产电脑、国产操作系统和现有业务...
三宜电气申请户外高压限流熔断器... 国家知识产权局信息显示,浙江三宜电气有限公司申请一项名为“一种户外高压限流熔断器”的专利,公开号CN...
AI+物理未来在哪?量子计算大... 8月3日,为期三天的“第五届CCF量子计算大会暨大湾区量子科学论坛”(以下简称“量子计算大会”)在深...
求问空气净化器有用吗?什么品牌... 最佳回答 空气净化器当然是有用的呀,真的可以起到净化室内空气的作用。目前市面上卖得最火的空气净化器都...
哪个品牌的座便器好 我家用的就是箭牌价格有贵的有便宜的,性价比比较高,他们的价格1000多的20000的都有像我们买20...
燃气热水器坏了能修吗 燃气热水器是我们日常生活中经常使用的家电之一,它可以帮我们快速制热热水,满足我们生活中的各种需求。但...
热水器温度计坏了能修吗 热水器是我们生活中必不可少的家用电器之一,尤其在冬季使用更加频繁。热水器温度计是热水器的核心部件之一...
管道接口处漏水怎么办 如果是管道接口处的接头松动了,可以用工具拧一下。如果是已经裂开了,要借助水泥、防水胶、防水剂之类的东...
外卖小哥一着急,给警察派了一个... 近日,北京街头上演了一场温暖的“爱心接力”。外卖小哥卢浩然情急之下拨打110报警,给民警派了个特殊的...
“中餐萨莉亚”,大幅涨价 在西安,流传着一句话:“西安人躲不开三件事——上学、上班、吃魏家。”如今,诞生于西安的魏家凉皮,已经...