MySQL中SQL Mode的查看與設(shè)置詳解
MySQL中SQL Mode的查看與設(shè)置
MySQL可以運(yùn)行在不同的模式下,而且可以在不同的場景下運(yùn)行不同的模式,這主要取決于系統(tǒng)變量 sql_mode 的值。本文主要介紹一下這個(gè)值的查看與設(shè)置,主要在Mac系統(tǒng)下。
對于每個(gè)模式的意義和作用,網(wǎng)上很容易找到,本文不做介紹。
按作用區(qū)域和時(shí)間可分為3個(gè)級(jí)別,分別是會(huì)話級(jí)別,全局級(jí)別,配置(永久生效)級(jí)別。
會(huì)話級(jí)別:
查看-
select @@session.sql_mode;
修改-
set @@session.sql_mode='xx_mode' set session sql_mode='xx_mode'
session均可省略,默認(rèn)session,僅對當(dāng)前會(huì)話有效
全局級(jí)別:
查看-
select @@global.sql_mode;
修改-
set global sql_mode='xx_mode'; set @@global.sql_mode='xx_mode';
需高級(jí)權(quán)限,僅對下次連接生效,不影響當(dāng)前會(huì)話(親測過),且MySQL重啟后失效,因?yàn)镸ySQL重啟時(shí)會(huì)重新讀取配置文件里對應(yīng)值,如果需永久生效需要修改配置文件里的值。
配置修改(永久生效):
打開 vi /etc/my.cnf
在下面添加
[mysqld] sql-mode = "xx_mode"
注意:[mysqld]必須加,且sql-mode中間是“-”,而不是下劃線。
保存退出,重啟服務(wù)器,即可永久生效。
因?yàn)镸ac下安裝MySQL沒有配置文件,所以需要自己手動(dòng)添加。
ps
最后額外加一點(diǎn)東西,就是Mac下MySQL的啟動(dòng)、停止、重啟等操作。
主要有兩種方式,
一是點(diǎn)擊”系統(tǒng)偏好設(shè)置“對應(yīng)的MySQL面板,可實(shí)現(xiàn)管理。
二是命令行方式。
MySQL相關(guān)的執(zhí)行腳本,常用的主要是下面兩個(gè):
/usr/local/mysql/support-files/mysql.server /usr/local/mysql/bin/mysql
mysql.server是控制服務(wù)器的啟停等操作。
mysql.server start|stop|restart|status
mysql主要用于連接服務(wù)器。
mysql -uroot -p **** -h **** -D **
有些需要sudo權(quán)限,且可將相關(guān)路徑添加到環(huán)境變量,可簡化書寫,至于如何添加是不做介紹了。
知識(shí)點(diǎn)擴(kuò)展:
Strict Mode闡述
根據(jù) mysql5.0以上版本 strict mode (STRICT_TRANS_TABLES) 的限制:
1).不支持對not null字段插入null值
2).不支持對自增長字段插入''值,可插入null值
3).不支持 text 字段有默認(rèn)值
看下面代碼:(第一個(gè)字段為自增字段)
$query="insert into demo values('','$firstname','$lastname','$sex')";
上邊代碼只在非strict模式有效。
Code代碼
$query="insert into demo values(NULL,'$firstname','$lastname','$sex')";
上邊代碼只在strict模式有效。把空值''換成了NULL.
相關(guān)文章
MySQL數(shù)據(jù)分析存儲(chǔ)引擎示例講解
這篇文章主要為大家介紹了MySQL數(shù)據(jù)分析關(guān)于存儲(chǔ)引擎的示例講解,搞懂存儲(chǔ)引擎會(huì)對大家在數(shù)據(jù)分析方面有很大的幫助,有需要的朋友可以借鑒參考下2021-10-10mysql密碼忘記后如何修改密碼(2022年最新版詳細(xì)教程保姆級(jí))
因?yàn)殚L時(shí)間不操作mysql而忘記root密碼的朋友估計(jì)不在少數(shù),下面這篇文章主要給大家介紹了關(guān)于mysql密碼忘記后如何修改密碼的相關(guān)資料,本教程是2022年最新版詳細(xì)教程保姆級(jí),需要的朋友可以參考下2022-04-04關(guān)于join?on和where執(zhí)行順序分析
這篇文章主要介紹了join?on和where執(zhí)行順序,如果是inner?join,?放on和放where產(chǎn)生的結(jié)果一樣,?執(zhí)行計(jì)劃也是一樣,但推薦使用on,本文對join?on和where執(zhí)行順序給大家詳細(xì)講解,需要的朋友可以參考下2023-03-03MySql 字符串中提取數(shù)字的實(shí)現(xiàn)示例
在MySQL中,有時(shí)需要從字符串中提取數(shù)字,本文就來介紹一下MySql 字符串中提取數(shù)字的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09MySQL日期格式化yyyy-mm-dd詳解(DATE_FORMAT()函數(shù))
MySQL提供了很多功能強(qiáng)大、方便易用的函數(shù),在進(jìn)行數(shù)據(jù)庫管理以及數(shù)據(jù)的查詢和操作時(shí),幫助我們提高對數(shù)據(jù)庫的管理效率,下面這篇文章主要給大家介紹了關(guān)于MySQL日期格式化yyyy-mm-dd(DATE_FORMAT()函數(shù))的相關(guān)資料,需要的朋友可以參考下2023-01-01解決數(shù)據(jù)庫有數(shù)據(jù)但查詢出來的值為Null問題
這篇文章主要介紹了解決數(shù)據(jù)庫有數(shù)據(jù)但查詢出來的值為Null問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10