婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > MySQL5.7中的sql_mode默認(rèn)值帶來(lái)的坑及解決方法

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

熱門(mén)標(biāo)簽:如何在高德地圖標(biāo)注新地址 高德地圖標(biāo)注模式 高德地圖標(biāo)注中心個(gè)人注冊(cè) 電銷(xiāo)機(jī)器人針對(duì)的 湘潭電銷(xiāo)機(jī)器人咨詢(xún)電話(huà) 400電話(huà)辦理都選易號(hào)網(wǎng) 寶應(yīng)電信400電話(huà)辦理費(fèi)用 外呼系統(tǒng)防封號(hào)違法嗎 外呼系統(tǒng)服務(wù)

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

sql_mode
optimizer_switch

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

案例一:ONLY_FULL_GROUP_BY

問(wèn)題描述

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

解決方案

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

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

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

方案二:改寫(xiě)SQL

案例二:NO_ZERO_DATE NO_ZERO_IN_DATE time_zone

問(wèn)題描述

排錯(cuò)階段一

MySQL版本從5.6升級(jí)至5.7之后,創(chuàng)建表的過(guò)程中失敗:

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)值是無(wú)效的,考慮到剛從5.6版本升級(jí)到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)還是無(wú)法成功創(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)建不成功。只好去官方手冊(cè)上找找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',原來(lái)是我們?cè)O(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'

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

百思不得其解。

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

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

回過(guò)頭來(lái)看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í)間范圍,測(cè)試環(huán)境設(shè)置了CST東八區(qū)的時(shí)區(qū),則對(duì)應(yīng)的時(shí)間范圍上也需要對(duì)應(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)值帶來(lái)的坑及解決方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • MySQL sql_mode修改不生效的原因及解決
  • 詳解MySQL的sql_mode查詢(xún)與設(shè)置
  • MySQL中SQL Mode的查看與設(shè)置詳解
  • mysql中的sql_mode模式實(shí)例詳解
  • Django2 連接MySQL及model測(cè)試實(shí)例分析
  • 關(guān)于MySQL的sql_mode合理設(shè)置詳解
  • MySQL關(guān)于sql_mode解析與設(shè)置講解
  • MySql版本問(wèn)題sql_mode=only_full_group_by的完美解決方案
  • 解決MySQL 5.7.9版本sql_mode=only_full_group_by問(wèn)題
  • Mysql之SQL Mode用法詳解
  • mysql sql_mode="" 的作用說(shuō)明
  • MySQL sql_mode的使用詳解

標(biāo)簽:黃山 佛山 賀州 南充 蘭州 馬鞍山 宿遷 黔南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL5.7中的sql_mode默認(rèn)值帶來(lái)的坑及解決方法》,本文關(guān)鍵詞  MySQL5.7,中的,sql,mode,默認(rèn)值,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL5.7中的sql_mode默認(rèn)值帶來(lái)的坑及解決方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于MySQL5.7中的sql_mode默認(rèn)值帶來(lái)的坑及解決方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    伊人夜夜躁av伊人久久| 欧美撒尿777hd撒尿| 国产日韩欧美综合一区| 色呦呦国产精品| 韩国一区二区视频| 另类小说色综合网站| 一区二区三区四区亚洲| 国产精品久久久久四虎| 国产亚洲欧洲一区高清在线观看| 欧美日韩的一区二区| 91久久线看在观草草青青| eeuss影院一区二区三区| 成人免费视频网站在线观看| 美女在线视频一区| 人妖欧美一区二区| 青青草精品视频| 日韩精品成人一区二区在线| 日韩一区欧美小说| 调教+趴+乳夹+国产+精品| 欧美视频一区二区在线观看| 国产成人免费在线观看不卡| 视频在线观看国产精品| 欧美午夜精品一区二区三区| 一区二区三区在线免费| 国产天堂亚洲国产碰碰| 欧美成人三级在线| 日韩免费成人网| 日韩美女天天操| 欧美大尺度电影在线| 久久综合色播五月| 中文一区二区完整视频在线观看| 国产精品色呦呦| 亚洲精品日韩综合观看成人91| 亚洲欧美激情插 | 亚洲精品免费电影| 欧美一区二区视频在线观看| 成人午夜看片网址| 久久av资源站| 国产精品初高中害羞小美女文| 欧美一区二区私人影院日本| 99riav久久精品riav| 国产最新精品精品你懂的| 亚洲成人免费在线| 国产精品―色哟哟| 国产女人18水真多18精品一级做| 在线成人午夜影院| 欧美在线制服丝袜| 亚洲亚洲精品在线观看| 国产精品久久久久久一区二区三区 | 欧美日韩一区高清| xnxx国产精品| 亚洲综合视频在线| 国产麻豆成人精品| 色偷偷成人一区二区三区91| 欧美一区二区三区人| 欧美韩日一区二区三区四区| 亚洲mv大片欧洲mv大片精品| 国产经典欧美精品| 欧美日韩精品一区二区天天拍小说| 精品国产一区二区精华| 亚洲国产视频a| 成人免费视频播放| 日韩精品在线一区| 亚洲欧美一区二区三区久本道91| 狠狠色综合播放一区二区| 欧美少妇xxx| 日韩一区中文字幕| 黑人巨大精品欧美黑白配亚洲| 色88888久久久久久影院野外| 2023国产精华国产精品| 日本vs亚洲vs韩国一区三区二区| 日本道在线观看一区二区| 中文字幕久久午夜不卡| 国产一区二区三区在线观看免费| 欧美日韩美女一区二区| 亚洲欧洲韩国日本视频| 国产成人在线免费观看| 91精品黄色片免费大全| 亚洲午夜在线电影| 91丨九色丨蝌蚪丨老版| 国产精品美女久久久久高潮| 国产精品456露脸| 欧美第一区第二区| 日本在线不卡视频一二三区| 欧美视频一区二| 亚洲一区二区视频在线观看| av在线这里只有精品| 国产情人综合久久777777| 久久99国内精品| 日韩一级片在线观看| 日韩国产成人精品| 69久久99精品久久久久婷婷| 天堂av在线一区| 在线电影一区二区三区| 天天做天天摸天天爽国产一区 | 久久亚洲精品国产精品紫薇| 美女脱光内衣内裤视频久久影院| 欧美疯狂做受xxxx富婆| 五月天久久比比资源色| 欧美人与z0zoxxxx视频| 日韩中文字幕一区二区三区| 91精品国产日韩91久久久久久| 日本不卡不码高清免费观看| 精品乱人伦小说| 国产一本一道久久香蕉| 国产肉丝袜一区二区| 成人午夜看片网址| 亚洲免费在线观看视频| 欧美日韩精品系列| 蜜桃av噜噜一区| 久久欧美中文字幕| 成人精品视频一区二区三区| 一区二区三区蜜桃| 欧美高清视频一二三区| 国产在线不卡视频| 亚洲欧美成人一区二区三区| 欧美日韩中文一区| 美国十次综合导航| 亚洲国产成人一区二区三区| 欧美在线观看一区二区| 久久国产人妖系列| 中文字幕亚洲在| 欧美日韩国产首页在线观看| 极品少妇xxxx精品少妇| 国产精品成人网| 亚洲欧美激情小说另类| 日韩av电影免费观看高清完整版 | 奇米影视一区二区三区| 欧美在线观看视频一区二区| 欧美性猛交xxxxxxxx| 日韩一区二区在线观看视频播放 | 成人做爰69片免费看网站| 精品国产欧美一区二区| 91精品国产一区二区三区蜜臀 | 久久人人爽人人爽| 91丨国产丨九色丨pron| 日韩不卡一二三区| 国产精品亲子乱子伦xxxx裸| 欧美日韩三级视频| 懂色av一区二区夜夜嗨| 天天影视涩香欲综合网| 国产精品高潮呻吟| 精品电影一区二区| 色综合天天天天做夜夜夜夜做| 三级一区在线视频先锋 | 国产精品高潮久久久久无| 91精品国产色综合久久不卡蜜臀| 成人激情午夜影院| 国产综合久久久久久鬼色| 婷婷中文字幕一区三区| 自拍偷拍国产精品| 精品国产一区二区亚洲人成毛片| 欧美系列日韩一区| 成人av综合在线| 精品一区二区成人精品| 图片区日韩欧美亚洲| 亚洲精选在线视频| 国产日韩欧美不卡在线| 26uuu久久天堂性欧美| 欧美一区二区三区日韩视频| 在线观看一区二区精品视频| 成人免费观看视频| 国内精品伊人久久久久av影院| 日韩国产在线观看一区| 亚洲男人的天堂在线aⅴ视频 | 欧美日韩电影一区| 在线免费av一区| jizzjizzjizz欧美| a美女胸又www黄视频久久| 懂色av中文字幕一区二区三区| 国产呦精品一区二区三区网站| 日本美女视频一区二区| 日韩av中文在线观看| 日韩精品亚洲一区| 五月天欧美精品| 日本视频在线一区| 奇米888四色在线精品| 麻豆一区二区在线| 另类综合日韩欧美亚洲| 经典三级在线一区| 国产成人精品影院| 成人av在线播放网站| 色香色香欲天天天影视综合网| 91麻豆免费观看| 欧美综合亚洲图片综合区| 欧美剧在线免费观看网站| 日韩一区二区在线观看| 日韩精品专区在线影院观看| xvideos.蜜桃一区二区| 亚洲国产精品传媒在线观看| 中文字幕一区二区三区乱码在线 | 国产欧美一区二区精品仙草咪| 国产精品女上位| 亚洲福利电影网| 美女诱惑一区二区| 成人av电影免费观看| 色伊人久久综合中文字幕| 91精品久久久久久久91蜜桃| 久久久国产精品麻豆| 一区二区中文视频|