日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
詳解MySQL服務器的SQL模式

與其它數(shù)據庫不同,MySQL 服務器可以在不同的 SQL 模式下運行,并且可以針對不同的客戶端以不同的方式應用這些模式,具體取決于 sql_mode 系統(tǒng)變量的值。

SQL 模式定義了 MySQL 數(shù)據庫所支持的 SQL 語法和數(shù)據校驗(數(shù)據驗證檢查),這樣可以更容易的在不同環(huán)境下使用 MySQL。

在 MySQL 中,SQL 模式常用來解決下面幾類問題:

通過設置 SQL Mode,可以完成不同嚴格程度的數(shù)據校驗,有效地保障了數(shù)據的準確性。

通過設置 SQL Mode 為 ANSI 模式,可以保證大多數(shù) SQL 符合標準的 SQL 語法,使不同數(shù)據庫之間進行遷移時,不需要進行較大的修改。

在不同數(shù)據庫之間進行數(shù)據遷移之前,設置 SQL Mode 可以使 MySQL 中的數(shù)據更方便地遷移到目標數(shù)據庫中。

sql_mode 系統(tǒng)變量的常用值

下面列出了幾種 SQL 模式常用的值。

TRICT_ ALL_TABLES 和 STRICT_ TRANS_TABLES

如果將 sql_mode 的值設置為 TRICT_ALL_TABLES 和 STRICT_TRANS_TABLES,那么 MySQL將啟用“嚴格”模式。在嚴格模式下,MySQL 服務器會更加嚴格地對待接收到的不合格數(shù)據,它不會把這些不合格的數(shù)據轉換為最為接近的有效值,而是會拒絕接收它們。

簡單來說 MySQL 的嚴格模式就是 MySQL 自身對數(shù)據進行的嚴格校驗,例如格式、長度和類型等。

TRADITIONAL

類似于嚴格模式,但是對于插入的不合格值會給出錯誤而不是警告??梢詰迷谑聞毡砗头鞘聞毡?,用于事務表時,只要出現(xiàn)錯誤就會立即回滾。

如果你使用的是非事務存儲引擎,建議不要把 SQL Mode 值設置為 TRADITIONAL,因為出現(xiàn)錯誤前進行的操作不會回滾,這樣會導致操作只進行了一部分。

ANSI_QUOTES

MySQL 服務器會把雙引號識別為一個標識符引用字符,而不是字符串的引號字符。所以在啟用 ANSI_QUOTES 時,不能用雙引號來引用字符串。

PIPES_ AS_ CONCAT

會讓 MySQL 服務器把||當成一個標準的 SQL 字符串連接運算符,而不會把它當成是 OR 運算符的同義詞。

在 Oracle 等數(shù)據庫中,||被視為字符串的連接操作符,所以在其它數(shù)據庫中含有||操作符的 SQL 在 MySQL 中將無法執(zhí)行,為了解決這個問題,MySQL 提供了這個值。

ANSI

會同時啟用 ANSI_QUOTES、PIPES_ AS_CONCAT 和其它的幾個模式值,使 MySQL 服務器的行為比它的默認運行狀態(tài)更接近于標準 SQL。

如何設置sql_mode

在設置 SQL 模式時,需要指定一個由單個模式值或多個模式值(多個模式值用逗號分隔)構成的值,或者指定一個空字符串,用以清除該值。模式值不區(qū)分大小寫。

如果想在啟動服務器時設置 SQL 模式,那么可以在 mysqld 命令行,或者在某個選項文件里設置系統(tǒng)變量 sql_mode??梢允褂孟旅嬲Z句:

sql_mode= "TRADITIONAL "
sql_mode= "ANSI_ QUOTES, PIPES_ AS_ CONCAT"

如果只是想在運行時更改 SQL 模式,那么可以使用 SET 語句來設置 sql_mode 系統(tǒng)變量。

SET sql_mode = ' TRADITIONAL' ;

如果想設置全局性的 SQL 模式,則需要加上 GLOBAL 關鍵字:

SET GLOBAL sql_mode = ' TRADITIONAL';

設置全局變量需要具備 SUPER 管理權限。新設置的全局變量值將成為此后連入客戶端的默認 SQL 模式。

如果想獲取當前會話或全局的 SQL 模式值,則可以使用如下語句:

SELECT @@SESSION.sql_mode;
SELECT @@GLOBAL. sql_mode;

其返回值由當前啟用的所有模式構成,兩個模式之間以逗號隔開。如果當前沒有啟用任何模式,則返回一個空值。


文章題目:詳解MySQL服務器的SQL模式
當前網址:http://m.5511xx.com/article/cocopgs.html