亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL5.7中的sql_mode默認(rèn)值帶來的坑及解決方法

2024-07-25 19:09:12
字體:
供稿:網(wǎng)友

在正常項(xiàng)目開發(fā)過程中,如果MySQL版本從5.6升級到5.7版本。作為DBA在考慮數(shù)據(jù)庫版本升級帶來的影響時(shí),一般會有幾個(gè)注意點(diǎn):

sql_modeoptimizer_switch

本文主要內(nèi)容是MySQL升級到5.7版本之后,由于默認(rèn)的 sql_mode 值帶來的坑以及對應(yīng)的解決方案。

案例一:ONLY_FULL_GROUP_BY

問題描述

MySQL版本從5.6升級至5.7之后,部分SQL執(zhí)行報(bào)錯(cuò),報(bào)錯(cuò)信息如下:

ERROR 1055 (42000): Expression #3 of XXXXXX list is not in GROUP BY clause and contains nonaggregated column ‘XXXXX.XXXXXX' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

這個(gè)問題原因在于從5.6升級至5.7版本后 sql_mode 默認(rèn)值發(fā)生了改變,在5.7版本的 sql_mode 默認(rèn)值中有意向 ONLY_FULL_GROUP_BY ,該選項(xiàng)的含義表示:對于使用 GROUP BY 進(jìn)行查詢的SQL,不允許 SELECT 部分出現(xiàn) GROUP BY 中未出現(xiàn)的字段,也就是 SELECT 查詢的字段必須是 GROUP BY 中出現(xiàn)的或者使用聚合函數(shù)的。

解決方案

方案一(不推薦):修改5.7版本 sql_mode 值,將 ONLY_FULL_GROUP_BY 去掉

ONLY_FULL_GROUP_BY 是加強(qiáng)SQL規(guī)范的,其目的是讓SQL查詢出來的結(jié)果更符合規(guī)范,更準(zhǔn)確。

如果沒有 ONLY_FULL_GROUP_BY 規(guī)范限制,那么則能允許以下SQL的執(zhí)行: SELECT a,b,c FROM t GROUP BY a 。SQL按照a字段值進(jìn)行分組,當(dāng)同一個(gè)a字段值對應(yīng)多個(gè)b或者c值時(shí),查詢結(jié)果中的b,c值是不確定的。

方案二:改寫SQL

案例二:NO_ZERO_DATE & NO_ZERO_IN_DATE & time_zone

問題描述

排錯(cuò)階段一

MySQL版本從5.6升級至5.7之后,創(chuàng)建表的過程中失?。?/p>

mysql> CREATE TABLE `t_manager` (  .....  ->  `CREATE_DATETIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',  ->  `MODIFIER` varchar(32) DEFAULT NULL COMMENT '更新人',  ->  `MODIFY_DATETIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時(shí)間',  ->  `IS_DELETED` bit(1) DEFAULT b'0' COMMENT '刪除狀態(tài) 1:刪除 0:未刪除',  ->  `IS_ENABLE` bit(1) DEFAULT b'1' COMMENT '啟用狀態(tài) 1:啟用 0:禁用',  ->  PRIMARY KEY (`CACHE_ID`)  -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;ERROR 1067 (42000): Invalid default value for 'MODIFY_DATETIME'

錯(cuò)誤提示 MODIFY_DATETIME 字段設(shè)置的默認(rèn)值是無效的,考慮到剛從5.6版本升級到5.7版本,于是又去翻了翻5.7中默認(rèn)的 sql_mode 值。結(jié)果發(fā)現(xiàn)了兩個(gè)可能存在影響的選項(xiàng):

NO_ZERO_DATE
NO_ZERO_IN_DATE

排錯(cuò)階段二

于是解決方案就是按照 NO_ZERO_DATE 以及 NO_ZERO_IN_DATE 的要求設(shè)置默認(rèn)值,將 MODIFY_DATETIME 字段默認(rèn)值設(shè)置為'1001-01-01 01:01:01',結(jié)果發(fā)現(xiàn)還是無法成功創(chuàng)建表:

mysql>CREATE TABLE `t_manager` (  .....  ->  `CREATE_DATETIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',  ->  `MODIFIER` varchar(32) DEFAULT NULL COMMENT '更新人',  ->  `MODIFY_DATETIME` timestamp NOT NULL DEFAULT '1001-01-01 01:01:01' ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時(shí)間',  ->  `IS_DELETED` bit(1) DEFAULT b'0' COMMENT '刪除狀態(tài) 1:刪除 0:未刪除',  ->  `IS_ENABLE` bit(1) DEFAULT b'1' COMMENT '啟用狀態(tài) 1:啟用 0:禁用',  ->  PRIMARY KEY (`CACHE_ID`)  -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;ERROR 1067 (42000): Invalid default value for 'MODIFY_DATETIME'

查看了所有的 sql_mode 值,都符合規(guī)范,但是表還是創(chuàng)建不成功。只好去官方手冊上找找timestamp介紹:

The TIMESTAMP data type is used for values that contain both date and time parts. TIMESTAMP has a range of ‘1970-01-01 00:00:01' UTC to ‘2038-01-19 03:14:07' UTC.

排錯(cuò)階段三

可以看到官方定義中timestamp字段值的范圍是'1970-01-01 00:00:01'到'2038-01-19 03:14:07',原來是我們設(shè)置的默認(rèn)值不在timestamp范圍之內(nèi)。于是再次修改默認(rèn)值:

mysql>CREATE TABLE `t_manager` (  .....  ->  `CREATE_DATETIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',  ->  `MODIFIER` varchar(32) DEFAULT NULL COMMENT '更新人',  ->  `MODIFY_DATETIME` timestamp NOT NULL DEFAULT '1970-01-01 00:00:01' ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時(shí)間',  ->  `IS_DELETED` bit(1) DEFAULT b'0' COMMENT '刪除狀態(tài) 1:刪除 0:未刪除',  ->  `IS_ENABLE` bit(1) DEFAULT b'1' COMMENT '啟用狀態(tài) 1:啟用 0:禁用',  ->  PRIMARY KEY (`CACHE_ID`)  -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;ERROR 1067 (42000): Invalid default value for 'MODIFY_DATETIME'

邪了門,居然還是無法成功創(chuàng)建表。實(shí)在是沒轍了,向同事求救,同事說他在機(jī)器上試試,結(jié)果同樣的語句在他的MySQL上執(zhí)行成功,同樣是5.7.23版本。

百思不得其解。

一氣之下將兩邊的參數(shù)值拿出來對比了一下,果然找到了不同的根本。

 

測試環(huán)境 同事環(huán)境
system_time_zone=CST system_time_zone UTC
time_zone='+08:00' time_zone=SYSTEM

 

回過頭來看timestamp字段定義的范圍:

The TIMESTAMP data type is used for values that contain both date and time parts. TIMESTAMP has a range of ‘1970-01-01 00:00:01' UTC to ‘2038-01-19 03:14:07' UTC.

這個(gè)時(shí)間范圍指的是UTC時(shí)區(qū)的時(shí)間范圍,測試環(huán)境設(shè)置了CST東八區(qū)的時(shí)區(qū),則對應(yīng)的時(shí)間范圍上也需要對應(yīng)的加8小時(shí)。所以將timestamp字段默認(rèn)值修改為'1970-01-01 08:00:01',表終于創(chuàng)建成功。

mysql>CREATE TABLE `mn_cache_refresh_manager` (  ......  ->  `CREATE_DATETIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',  ->  `MODIFIER` varchar(32) DEFAULT NULL COMMENT '更新人',  ->  `MODIFY_DATETIME` timestamp NOT NULL DEFAULT '1970-01-01 08:00:01' ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時(shí)間',  ->  `IS_DELETED` bit(1) DEFAULT b'0' COMMENT '刪除狀態(tài) 1:刪除 0:未刪除',  ->  `IS_ENABLE` bit(1) DEFAULT b'1' COMMENT '啟用狀態(tài) 1:啟用 0:禁用',  ->  PRIMARY KEY (`CACHE_ID`)  -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;Query OK, 0 rows affected (0.02 sec)

總結(jié)

以上所述是小編給大家介紹的MySQL5.7中的sql_mode默認(rèn)值帶來的坑及解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對VeVb武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識閱讀請移步到MYSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
欧美在线观看不卡| 国产欧美一区二区精品久导航| 亚洲精品国偷自产在线99热| 成人羞羞网站入口| 美女被内谢流白浆高视频| 欧美丰满少妇xxxbbb| 日韩av字幕| 日韩av网站免费在线| 公共露出暴露狂另类av| 六月亚洲精品一区| 欧美午夜视频在线| 黑人欧美xxxx| 久久国产精品亚洲va麻豆| 久久在线观看| 久久久久久久中文| 欧美精彩一区二区三区| jvid一区二区三区| 国产婷婷色一区二区三区在线| 久久a级毛片毛片免费观看| 欧美一区二区三区在线看| 国产精品毛片大码女人| 成人黄色在线观看| 国产成人欧美在线观看| aⅴ在线视频男人的天堂| 国产精品久久久久久久久免费丝袜| 午夜精品一区二区三区国产| 国产精品久av福利在线观看| 91视频久色| 免费成人午夜视频| www555久久| av成人天堂| 美女精品一区| 男女污污视频在线观看| 久久久久国产精品厨房| 欧美在线va视频| 国产精品毛片一区二区在线看舒淇| 成人黄色av免费在线观看| 夜夜精品视频| 日韩欧美高清视频| 99久久影视| a级毛片免费高清视频| 久久电影网站中文字幕| 久久婷婷成人综合色| 亚洲欧洲精品一区二区精品久久久| 亚洲中文字幕无码av| 99久久99久久精品免费| 国产精品无码久久久久成人app| 国产精品视频专区| 欧美日中文字幕| sm捆绑调教国产免费网站在线观看| 综合蜜桃精品| 亚洲免费视频一区二区三区| 成人在线免费电影网站| 欧美久久婷婷综合色| 午夜在线网站| 精品久久久久久久久久岛国gif| 中文人妻av久久人妻18| 亚洲免费观看高清在线观看| 91tv在线观看| 国产欧美精品在线| 国产成人精品自线拍| 伊人亚洲综合网| 日韩激情免费视频| 激情图片在线观看高清国产| 中文字幕乱妇无码av在线| 在线免费一级片| 成人精品视频一区二区| 日日夜夜综合| 91激情在线| 精品久久久久久久久久久久久| 成人女保姆的销魂服务| 免费国产自久久久久三四区久久| 天堂va在线| 亚洲欧洲日本在线| 婷婷久久国产对白刺激五月99| 91麻豆国产在线| 欧美色网址大全| 成人午夜电影久久影院| 性久久久久久久久久| 日本在线视频www鲁啊鲁| 国产盗摄视频一区二区三区| 欧美羞羞免费网站| 97欧美精品一区二区三区| 国产精品久久久久久久免费大片| 国产一区二区三区丝袜| 影音先锋人妻啪啪av资源网站| 国产在线精品一区免费香蕉| 中文字幕一区二区人妻视频| 亚洲精品三级| 欧美重口另类videos人妖| 奇米一区二区三区av| 亚洲av永久纯肉无码精品动漫| 深夜福利视频一区二区| 日本a级片电影一区二区| 69亚洲精品久久久蜜桃小说| 中日韩午夜理伦电影免费| 久久久久久久久久久9不雅视频| 亚洲老板91色精品久久| 一本久道久久综合无码中文| 成 人片 黄 色 大 片| 国产精品蜜臀| 中文字幕一区在线| 欧美高清视频一区二区三区在线观看| 日日干天夜夜| 国产精品白嫩美女在线观看| 精品久久久久99| 99九九99九九九99九他书对| 性高潮视频在线观看| 国产网站在线| 国产美女作爱全过程免费视频| 亚洲精品日韩丝袜精品| 性久久久久久久久久久久久久| 超碰97在线免费观看| 国产一区二区三区在线视频| 亚洲一本大道在线| 狠狠色丁香婷婷综合| 顶级网黄在线播放| 在线国产精品视频| 精品一区二区三区香蕉蜜桃| 国产又粗又爽又黄的视频| 美丽的姑娘在线观看免费动漫| 色婷婷综合中文久久一本| 亚洲高清电影| 黄色影院在线观看| 日韩人妻无码精品久久久不卡| 亚洲制服欧美久久| 欧美成人a∨高清免费观看| 久久视频免费在线| 欧美久久精品一级c片| 97dyy97影院理论片在线| 亚洲午夜未满十八勿入免费观看全集| 一道精品视频一区二区三区图片| 你懂的在线观看| 一区二区三区精彩视频| 久久国产日韩欧美精品| а√最新版天堂中文在线| 欧洲免费在线视频| 久久久www成人免费无遮挡大片| 国产91av在线播放| 日本中文字幕不卡免费| 黄色网在线免费观看| 久久久久久久美女| 人妖粗暴刺激videos呻吟| 老司机免费在线视频| 成人eeuss影院在线观看| 欧美三级日本三级| 亚洲国产成人二区| 欧美精品久久久久久久免费观看| 久久精品中文字幕一区二区三区| 久久要要av| 91丨九色丨丰满| 捆绑凌虐一区二区三区| 污污视频网站| 在线观看免费视频高清游戏推荐| 国产精品爽爽爽| 久久精品ww人人做人人爽| 欧美亚洲一区二区在线观看| 国产一区二区三区香蕉| 开心激情综合网| 欧美亚洲免费在线| 亚洲欧美福利视频| 亚洲国产精品久久久| 99视频日韩| www.久久久久久久久久久| 手机av在线免费| 亚洲一级影院| 国内精品久久久久久久影视蜜臀| 国外成人性视频| 97电影在线| 午夜啪啪福利视频| 黄色成人av网站| 日韩小视频在线播放| 国产精品99| 成人av电影天堂| 亚洲欧美一二三区| 男女污污视频网站| 四季久久免费一区二区三区四区| 加勒比在线一区二区三区观看| 成人亚洲性情网站www在线观看| 欧美激情精品久久久久久免费| 欧美性色黄大片手机版| 中文字幕伦理免费在线视频| 欧美专区日韩专区| 久久99热99| 四虎成人免费观看在线网址| 亚洲综合成人av| 国产美女视频一区二区三区| 5g影院天天爽成人免费下载| 一区在线不卡| 在线亚洲午夜片av大片| 国产sm主人调教女m视频| 麻豆av电影| 亚洲图区在线| 超碰在线资源站| 国产精品久久久久白浆| 双性尿奴穿贞c带憋尿| 影音av在线| 中文字幕一区二区三区免费看| 欧美精品丝袜中出| 在线观看免费国产小视频| 亚洲精品国产高清久久伦理二区| 亚洲午夜激情免费视频| 国产高清精品一区| 色999日韩欧美国产| 久久亚洲午夜电影| 在线黄色av网站| 日韩欧美亚洲精品| 欧美重口乱码一区二区| 欧美激情视频一区二区三区免费| 久久免费视频精品| 1卡2卡3卡精品视频| 国产真实乱偷精品视频| 国产5g成人5g天天爽| 国产免费福利视频| 亚洲女人小视频在线观看| 欧美日韩免费不卡视频一区二区三区| 欧美成人精品网站| 欧美性猛交xxxxx少妇| 精品国偷自产一区二区三区| 四虎国产成人精品免费一女五男| 香蕉久久久久久久av网站| 无套内精的网站| 影音先锋男士资源站| 国产欧美日本一区视频| 国产黄色精品网站| 5g影院5g天天爽永久免费影院| 日本私人网站在线观看| 亚洲裸体俱乐部裸体舞表演av| 亚洲欧美国产精品va在线观看| 羞羞的网站在线观看| 精品无码一区二区三区爱欲| av网站大全在线| 欧美午夜一区二区| 一区二区三区中文字幕在线观看| 欧美性天天影院| 国产手机视频一区二区| 国产精品传媒精东影业在线| 黄色网页在线| 久久久久亚洲精品国产| 亚洲精品美女久久久久| 在线精品视频一区二区| 国产视频视频一区| 91社区视频在线观看| 日本激情综合网| 日韩欧美在线一区二区| 欧美大片一区二区三区| 午夜av区久久| 成人午夜两性视频| 在线观看成人影院| 午夜精品久久久久久毛片| 国产小视频福利在线| 亚洲最大福利视频网| 91豆花视频在线播放| 成人av无码一区二区三区| 五十路中文字幕| 亚洲激情在线观看| 91精品国产色综合久久ai换脸| 2019中文亚洲字幕| 成人网ww555视频免费看| 国产欧美一区二区三区米奇| 欧美成人第一区| 久草免费在线观看| 国产日韩欧美精品一区二区三区| 你懂的网站在线观看| 国产精品久久久久久超碰| 国内不卡的二区三区中文字幕| 日韩精品一区二区三区第95| 无码国模国产在线观看| 国产乱码精品一区二三赶尸艳谈| 欧美色视频在线观看| 国产美女视频一区| 欧美国产小视频| 一区二区三区四区五区精品| 欧美日韩亚洲色图| 亚洲高清色图| 亚洲精选视频在线| yes4444视频在线观看| 三级视频网站在线观看| 亚洲精品伦理在线| 伊人影院在线播放| 日韩最新免费不卡| 成人av.网址在线网站| 欧洲毛片视频| 中文精品一区二区| 亚洲AV无码久久精品国产一区| 欧美大片免费观看| 国产青青在线视频| 日本免费精品| 麻豆视频在线观看免费| 日本成人在线视频网站| 三区视频在线观看| 亚洲午夜精品久久久久久性色| 日韩欧美亚洲一二三区| 天堂一区二区在线免费观看| 欧美午夜精品一区| 婷婷视频在线观看| 在线观看的日韩av| 战狼4完整免费观看在线播放版| 国产亚洲精品一区二555| 自拍小视频在线观看| 99精品免费视频| 亚洲成人激情在线观看| 亚洲免费视频在线观看| 影音先锋中文字幕一区| av网站在线不卡| 五月天亚洲视频| 亚洲欧美网站在线观看| 天天久久综合| 亚洲ai欧洲av| 亚洲va久久久噜噜噜久久狠狠| 99re这里只有精品在线| 波多结衣在线观看| 91精品国产一区二区| 91精品国产乱码久久久久久久| 不卡的av在线| 午夜一区在线观看| 最近2018年手机中文在线| 国产精品久久久亚洲一区| 人妻夜夜爽天天爽| 乱插在线www| 欧美精品一区二区久久婷婷| 91亚洲精品久久久蜜桃借种| 欧美交a欧美精品喷水| 国产精品入口麻豆| 人成福利视频在线观看| 台湾佬成人中文网222vvv| 亚洲大肥女ass| 91福利免费视频|