目錄
sql_mode常用值如下:
首頁 資料庫 mysql教程 教你一招搞定mysql中的sql_mode設置

教你一招搞定mysql中的sql_mode設置

Aug 05, 2021 am 09:22 AM
sql_mode

sql_mode是個很容易被忽略的變量,預設值是空值,在這種設定下是可以允許一些非法操作的,例如允許一些非法資料的插入。在生產環境必須將這個值設為嚴格模式,所以開發、測試環境的資料庫也必須設置,這樣在開發測試階段就可以發現問題。

1,執行SQL檢視

select @@session.sql_mode;
登入後複製

全域層級:查看

select @@global.sql_mode;
登入後複製

2,修改

set @@session.sql_mode='xx_mode'
set session sql_mode='xx_mode'
登入後複製

全域層級:修改

set global sql_mode='xx_mode';
set @@global.sql_mode='xx_mode';
登入後複製

session皆可省略,預設session,僅對目前會話有效
全域修改的話,需進階權限,僅對下次連線生效,不影響目前會話,且MySQL重新啟動後失效,因為MySQL重新啟動時會重新讀取設定檔裡對應值,如果需要永久生效需要修改設定檔裡的值。

vi /etc/my.cnf
登入後複製
[mysqld]
sql-mode = "xx_mode"
登入後複製

儲存退出,重新啟動伺服器,即可永久生效

sql_mode常用值如下:

ONLY_FULL_GROUP_BY

#對於GROUP BY聚合操作,如果在SELECT中的列,沒有在GROUP BY中出現,那麼這個SQL是不合法的,因為列不在GROUP BY從句中

NO_AUTO_VALUE_ON_ZERO

此值會影響自增長列的插入。預設設定下,插入0或NULL代表產生下一個自增長值。如果使用者 希望插入的值為0,而該列又是自增長的,那麼這個選項就有用了。

STRICT_TRANS_TABLES

在該模式下,如果一個值不能插入到一個交易表中,則中斷目前的操作,對非交易表不做限制

NO_ZERO_IN_DATE

在嚴格模式下,不允許日期或月份為零,只要日期的月或日中含有0值都報錯,但是'0000-00-00 '除外

NO_ZERO_DATE

設定該值,mysql資料庫不允許插入零日期,插入零日期會拋出錯誤而不是警告。年月日中任何一個不為0都符合要求,只有'0000-00-00'會報錯

ERROR_FOR_pISION_BY_ZERO

#在INSERT或UPDATE過程中,如果資料被零除,則產生錯誤而非警告。如果未給該模式,那麼資料被零除時MySQL回傳NULL

update table set num = 5 / 0 ; 設定此模式後會報錯,不設定則修改成功,num的值為null

NO_AUTO_CREATE_USER

禁止GRANT建立密碼為空的使用者

##NO_ENGINE_SUBSTITUTION

如果需要的儲存引擎被禁用或未編譯,那麼拋出錯誤。不設定此值時,用預設的儲存引擎替代,並拋出一個例外

PIPES_AS_CONCAT

將"||"視為字串的連接運算符而非或運算符,這和Oracle資料庫是一樣的,也和字串的拼接函數Concat相類似

ANSI_QUOTES

啟用ANSI_QUOTES後,不能用雙引號來引用字串,因為它被解釋為識別符

相關推薦:《

mysql教程

以上是教你一招搞定mysql中的sql_mode設置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

減少在Docker中使用MySQL內存的使用 減少在Docker中使用MySQL內存的使用 Mar 04, 2025 pm 03:52 PM

減少在Docker中使用MySQL內存的使用

如何使用Alter Table語句在MySQL中更改表? 如何使用Alter Table語句在MySQL中更改表? Mar 19, 2025 pm 03:51 PM

如何使用Alter Table語句在MySQL中更改表?

mysql無法打開共享庫怎麼解決 mysql無法打開共享庫怎麼解決 Mar 04, 2025 pm 04:01 PM

mysql無法打開共享庫怎麼解決

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器) 在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器) Mar 04, 2025 pm 03:54 PM

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)

什麼是 SQLite?全面概述 什麼是 SQLite?全面概述 Mar 04, 2025 pm 03:55 PM

什麼是 SQLite?全面概述

在MacOS上運行多個MySQL版本:逐步指南 在MacOS上運行多個MySQL版本:逐步指南 Mar 04, 2025 pm 03:49 PM

在MacOS上運行多個MySQL版本:逐步指南

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼? 哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼? Mar 21, 2025 pm 06:28 PM

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼?

如何為MySQL連接配置SSL/TLS加密? 如何為MySQL連接配置SSL/TLS加密? Mar 18, 2025 pm 12:01 PM

如何為MySQL連接配置SSL/TLS加密?

See all articles