欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql5.7版本因?yàn)閟ql_mode設(shè)置導(dǎo)致的問(wèn)題以及解決

 更新時(shí)間:2024年09月06日 13:19:47   作者:一介白衣ing  
這篇文章主要介紹了mysql5.7版本因?yàn)閟ql_mode設(shè)置導(dǎo)致的問(wèn)題以及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mysql5.7版本因?yàn)閟ql_mode設(shè)置導(dǎo)致的問(wèn)題

因?yàn)橹匦掳惭b了環(huán)境,想把之前的數(shù)據(jù)庫(kù)導(dǎo)入到新庫(kù)里面,

結(jié)果就報(bào)了如下錯(cuò)誤: 

[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘information_schema.PROFILING.SEQ’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by”

嘗試解決

方法一

登錄mysql,設(shè)置sql_mode

use mysql;
set sql_mode=‘NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';

然而并沒(méi)有什么卵用

方法二

原來(lái)上邊的設(shè)置方法只是會(huì)話級(jí)別的設(shè)置,真正讓他生效得修改配置文件:

vi /etc/my.cnf

在[mysqld]配置項(xiàng)下面加上:

sql_mode=NO_UNSIGNED_SUBTRACTION,NO_ENGINE_SUBSTITUTION

重啟服務(wù),

再進(jìn)入mysql

show variables like ‘sql_mode';

設(shè)置成功啦?。?/p>

關(guān)于sql_mode

官方文檔:https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html

重要的幾項(xiàng)配置簡(jiǎn)單介紹,更多詳細(xì)介紹移步官方文檔

  • NO_ENGINE_SUBSTITUTION 使用 ALTER TABLE或CREATE TABLE 指定 ENGINE 時(shí), 需要的存儲(chǔ)引擎被禁用或未編譯,該如何處理。
  • 啟用NO_ENGINE_SUBSTITUTION時(shí),那么直接拋出錯(cuò)誤;不設(shè)置此值時(shí),CREATE用默認(rèn)的存儲(chǔ)引擎替代,ATLER不進(jìn)行更改,并拋出一個(gè) warning .
  • STRICT_TRANS_TABLES 設(shè)置它,表示啟用嚴(yán)格模式。

注意: STRICT_TRANS_TABLES 不是幾種策略的組合,單獨(dú)指 INSERT、UPDATE出現(xiàn)少值或無(wú)效值該如何處理:

  • 例如:

如果我們建表的時(shí)候不嚴(yán)格,比如字段設(shè)置是NOT NULL,然而并沒(méi)有給字段設(shè)置默認(rèn)值,在插入語(yǔ)句的時(shí)候,這個(gè)字段我們忽略,沒(méi)有賦值,恰好這個(gè)時(shí)候mysql的sql_mode是嚴(yán)格模式,即啟用了STRICT_TRANS_TABLES,就會(huì)報(bào)字段沒(méi)有默認(rèn)值的錯(cuò)誤。

或者說(shuō),我們將空字符串賦值給int類型的字段,在嚴(yán)格模式下也會(huì)報(bào)同樣的錯(cuò)誤。如果sql_mode沒(méi)有配置STRICT_TRANS_TABLES則不會(huì)報(bào)錯(cuò)

ONLY_FULL_GROUP_BY 對(duì)于GROUP BY聚合操作,如果在SELECT中的列、HAVING或者ORDER BY子句的列,沒(méi)有在GROUP BY中出現(xiàn),那么這個(gè)SQL是不合法的。因?yàn)椴辉?group by 的列查出來(lái)展示會(huì)有矛盾。

  • 例如:
SELECT id from conf_merchant GROUP BY merchant_id;

這條sql在ONLY_FULL_GROUP_BY模式下就會(huì)報(bào)錯(cuò)。

1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘iapw.conf_merchant.market_id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

如果sql_mode 沒(méi)有配置ONLY_FULL_GROUP_BY,就不會(huì)報(bào)錯(cuò)。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論