校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > mysql中的sql_mode模式實例詳解

mysql中的sql_mode模式實例詳解

熱門標簽:走過哪個省地圖標注 安徽ai電話電銷機器人有效果嗎 常州網絡外呼系統(tǒng)開發(fā) 400電話申請信用卡 在哪里申請400電話 萊西市地圖標注 外呼系統(tǒng)電銷受騙 銷售語音電話機器人 巫師三血與酒地圖標注

本文實例講述了mysql中的sql_mode模式。分享給大家供大家參考,具體如下:

mysql數據庫的中有一個環(huán)境變量sql_mode,定義了mysql應該支持的sql語法,數據校驗等!我們可以通過以下方式查看當前數據庫使用的sql_mode:

mysql> select @@sql_mode;
+----------------------------------------------------------------+
| @@sql_mode                           |
+----------------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------+

mysql5.0以上版本支持三種sql_mode模式

ANSI模式

寬松模式,對插入數據進行校驗,如果不符合定義類型或長度,對數據類型調整或截斷保存,報warning警告。

TRADITIONAL模式

嚴格模式,當向mysql數據庫插入數據時,進行數據的嚴格校驗,保證錯誤數據不能插入,報error錯誤。用于事物時,會進行事物的回滾。

STRICT_TRANS_TABLES模式

嚴格模式,進行數據的嚴格校驗,錯誤數據不能插入,報error錯誤。

 

1 ANSI模式

在ANSI模式下,當我們插入數據時,未滿足列長度要求時,數據同樣會插入成功,但是對超出列長度的字段進行截斷,同時報告warning警告。

mysql> set @@sql_mode=ANSI;
Query OK, 0 rows affected (0.00 sec)
mysql> create table test(name varchar(4), pass varchar(4));
Query OK, 0 rows affected (0.03 sec)
mysql> insert into test values('aaaaa','aaaaa'),('bbbb','bbbb');
Query OK, 2 rows affected, 2 warnings (0.02 sec)
Records: 2 Duplicates: 0 Warnings: 2
mysql> show warnings;
+---------+------+-------------------------------------------+
| Level  | Code | Message                  |
+---------+------+-------------------------------------------+
| Warning | 1265 | Data truncated for column 'name' at row 1 |
| Warning | 1265 | Data truncated for column 'pass' at row 1 |
+---------+------+-------------------------------------------+
2 rows in set (0.00 sec)
mysql> select * from test;
+------+------+
| name | pass |
+------+------+
| aaaa | aaaa |
| bbbb | bbbb |
+------+------+
2 rows in set (0.00 sec)

2 STRICT_TRANS_TABLES模式

在STRICT_TRANS_TABLES模式下,當我們插入數據時,mysql會嚴格的進行數據的校驗,當發(fā)現(xiàn)插入列值未滿足要求,直接報告error錯誤,保證了錯誤數據無法插入到數據庫中。

mysql> set @@sql_mode=STRICT_TRANS_TABLES;
Query OK, 0 rows affected (0.00 sec)
mysql> create table test(name varchar(4), pass varchar(4));
Query OK, 0 rows affected (0.02 sec)
mysql> insert into test values('aaaaa','aaaaa'),('bbbb','bbbb');
ERROR 1406 (22001): Data too long for column 'name' at row 1
mysql> show errors;
+-------+------+------------------------------------------+
| Level | Code | Message                 |
+-------+------+------------------------------------------+
| Error | 1406 | Data too long for column 'name' at row 1 |
+-------+------+------------------------------------------+
1 row in set (0.00 sec)
mysql> select * from test;
Empty set (0.00 sec)

3 TRADITIONAL模式,初看結果是不是一樣

mysql> set @@sql_mode=TRADITIONAL;
Query OK, 0 rows affected (0.00 sec)
mysql> create table test(name varchar(4), pass varchar(4));
Query OK, 0 rows affected (0.02 sec)
mysql> insert into test values('aaaaa','aaaaa'),('bbbb','bbbb');
ERROR 1406 (22001): Data too long for column 'name' at row 1
mysql> show errors;
+-------+------+------------------------------------------+
| Level | Code | Message                 |
+-------+------+------------------------------------------+
| Error | 1406 | Data too long for column 'name' at row 1 |
+-------+------+------------------------------------------+
1 row in set (0.00 sec)
mysql> select * from test;
Empty set (0.00 sec)

但是,可以看看設置后的情況

mysql> set @@sql_mode=TRADITIONAL;
Query OK, 0 rows affected (0.00 sec)
mysql> select @@sql_mode\G
*************************** 1. row ***************************
@@sql_mode: STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
1 row in set (0.00 sec)

在TRADITIONAL模式下,對所有的事務存儲引擎,非事務存儲引擎檢查,日期類型中的月和日部分不能包含0,不能有0這樣的日期(0000-00-00),數據不能除0,禁止grant自動創(chuàng)建新用戶等一些校驗。

最后:

set @@只是在sessions級別設置的,要想所有的都生效,還是要設置配置文件

vi /etc/my.cnf

在[mysqld]下面添加如下列:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

#NO_ENGINE_SUBSTITUTION對于不存在的引擎就報錯,不加的話,指定不支持的引擎時指定默認的innodb

另外:sql_mode還有一個配置ONLY_FULL_GROUP_BY,這個表示采用group by帥選數據的時候只能查看新組內信息

改模式之前的操作

mysql> select * from employee group by post;
+----+--------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
| id | name  | sex  | age | hire_date | post                  | post_comment | salary   | office | depart_id |
+----+--------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
| 14 | 張野  | male  | 28 | 2016-03-11 | operation                | NULL     |  10000.13 |  403 |     3 |
| 9 | 歪歪  | female | 48 | 2015-03-11 | sale                  | NULL     |  3000.13 |  402 |     2 |
| 2 | alex  | male  | 78 | 2015-03-02 | teacher                 | NULL     | 1000000.31 |  401 |     1 |
| 1 | egon  | male  | 18 | 2017-03-01 | 老男孩駐沙河辦事處外交大使       | NULL     |  7300.33 |  401 |     1 |
+----+--------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
4 rows in set (0.00 sec)

此時的sql_mode:

mysql> select @@sql_mode;
+----------------------------------------------------------------+
| @@sql_mode                           |
+----------------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------+
1 row in set (0.00 sec)

修改一下,退出再進入才會生效

mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ONLY_FULL_GROUP_BY';
Query OK, 0 rows affected (0.00 sec)
mysql> select @@sql_mode;
+----------------------------------------------------------------+
| @@sql_mode                           |
+----------------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> exit
Bye

再次進入

mysql> select @@sql_mode;
+-----------------------------------------------------------------------------------+
| @@sql_mode |
+-----------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-----------------------------------------------------------------------------------+
1 row in set (0.00 sec)

下面查看修改后的查看結果

mysql> select * from employee group by post;  //只能查看post
ERROR 1055 (42000): 't1.employee.id' isn't in GROUP BY
mysql> select post from employee group by post;
+-----------------------------------------+
| post                  |
+-----------------------------------------+
| operation                |
| sale                  |
| teacher                 |
| 老男孩駐沙河辦事處外交大使       |
+-----------------------------------------+
4 rows in set (0.00 sec)
mysql> select id,post from employee group by post;
ERROR 1055 (42000): 't1.employee.id' isn't in GROUP BY
mysql> select name,post from employee group by post,name; //根據group by 后面的選擇查看
+------------+-----------------------------------------+
| name | post |
+------------+-----------------------------------------+
| 張野 | operation |
| 程咬金 | operation |
| 程咬鐵 | operation |
| 程咬銅 | operation |
| 程咬銀 | operation |
| 丁丁 | sale |
| 丫丫 | sale |
| 星星 | sale |
| 格格 | sale |
| 歪歪 | sale |
| alex | teacher |
| jingliyang | teacher |
| jinxin | teacher |
| liwenzhou | teacher |
| wupeiqi | teacher |
| xiaomage | teacher |
| yuanhao | teacher |
| egon | 老男孩駐沙河辦事處外交大使 |
+------------+-----------------------------------------+
18 rows in set (0.00 sec)

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總》

希望本文所述對大家MySQL數據庫計有所幫助。

您可能感興趣的文章:
  • MySQL sql_mode修改不生效的原因及解決
  • 詳解MySQL的sql_mode查詢與設置
  • MySQL中SQL Mode的查看與設置詳解
  • Django2 連接MySQL及model測試實例分析
  • 關于MySQL的sql_mode合理設置詳解
  • MySQL關于sql_mode解析與設置講解
  • MySQL5.7中的sql_mode默認值帶來的坑及解決方法
  • MySql版本問題sql_mode=only_full_group_by的完美解決方案
  • 解決MySQL 5.7.9版本sql_mode=only_full_group_by問題
  • Mysql之SQL Mode用法詳解
  • mysql sql_mode="" 的作用說明
  • MySQL sql_mode的使用詳解

標簽:河北 煙臺 黃石 陽江 赤峰 來賓 果洛 鞍山

巨人網絡通訊聲明:本文標題《mysql中的sql_mode模式實例詳解》,本文關鍵詞  mysql,中的,sql,mode,模式,實例,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mysql中的sql_mode模式實例詳解》相關的同類信息!
  • 本頁收集關于mysql中的sql_mode模式實例詳解的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美午夜不卡视频| 91在线一区二区三区| 国内精品伊人久久久久av影院| 日本中文字幕一区二区视频 | 亚洲精品国产视频| 1000部国产精品成人观看| 亚洲视频一区二区在线| 亚洲图片欧美色图| 国产成人精品影视| 色婷婷综合激情| 久久久精品蜜桃| 日精品一区二区| eeuss鲁一区二区三区| 欧美三日本三级三级在线播放| 精品日韩一区二区三区| 国产精品素人视频| 午夜日韩在线电影| 91捆绑美女网站| 国产午夜亚洲精品午夜鲁丝片 | 国产一区二区三区四区五区美女| 91污片在线观看| 91精品国产色综合久久不卡电影| 在线观看不卡一区| 国产精品色一区二区三区| 艳妇臀荡乳欲伦亚洲一区| 男女性色大片免费观看一区二区| 成人免费视频免费观看| 欧美精品九九99久久| 国产精品第五页| 福利91精品一区二区三区| 日韩一区二区麻豆国产| 狠狠色丁香婷综合久久| 欧美日韩久久一区二区| 国产精品美女www爽爽爽| 色综合久久88色综合天天6| 久久久久久久综合| 国产一区二区三区国产| 精品视频1区2区3区| 亚洲欧美中日韩| 国产剧情av麻豆香蕉精品| 欧美日韩国产精选| 亚洲成人动漫在线观看| 欧美日韩一区二区三区四区| 亚洲欧美色一区| 在线免费亚洲电影| 亚洲制服丝袜av| 欧美二区三区91| 日本一道高清亚洲日美韩| 日韩精品专区在线影院重磅| 亚洲欧洲av一区二区三区久久| 成人高清免费观看| 亚洲在线视频免费观看| 在线不卡a资源高清| 久久精品国产澳门| 日本一区二区三级电影在线观看| 国产精品一品二品| 欧美国产日本视频| 91色porny在线视频| 中文子幕无线码一区tr| 在线精品国精品国产尤物884a| 亚洲欧洲性图库| 欧美一区二区三区四区视频| 久久成人免费日本黄色| 中文字幕一区二区三区在线观看| 欧美日韩美女一区二区| 国产成人一区在线| 日韩国产欧美一区二区三区| 国产清纯白嫩初高生在线观看91| 欧美日韩三级在线| av电影一区二区| 久久91精品久久久久久秒播| 91久久精品一区二区三区| 成人晚上爱看视频| 免费亚洲电影在线| 亚洲欧美偷拍另类a∨色屁股| 欧美日韩黄视频| 风间由美一区二区三区在线观看| 日韩 欧美一区二区三区| 亚洲码国产岛国毛片在线| 日韩一级在线观看| 911精品国产一区二区在线| 91亚洲永久精品| 成人午夜电影网站| 在线观看亚洲一区| 国产呦精品一区二区三区网站| 亚洲成人7777| 国产精品一区二区x88av| 蜜臀av一区二区三区| 精品一区二区三区久久| 国产一区二区毛片| 97久久精品人人爽人人爽蜜臀| 国产iv一区二区三区| 国产精品亚洲а∨天堂免在线| 精品一区中文字幕| 国产成人av电影在线| 欧美色区777第一页| 91福利区一区二区三区| 欧美日韩成人一区| 26uuu另类欧美亚洲曰本| 国产精品色一区二区三区| 国产一区二区免费看| 丁香桃色午夜亚洲一区二区三区| 国产91清纯白嫩初高中在线观看| 国产精品正在播放| 欧美亚洲自拍偷拍| 精品美女在线播放| 亚洲色图欧美偷拍| 日韩精品亚洲一区| 成人av动漫网站| 日韩精品一区二区三区在线观看 | 国产福利视频一区二区三区| 成人午夜免费视频| 欧美日韩中文国产| 国产精品久久二区二区| 亚洲成av人片在www色猫咪| 久久99这里只有精品| 91福利小视频| 日韩欧美电影一二三| 夜夜精品浪潮av一区二区三区| 国v精品久久久网| 日韩欧美黄色影院| 亚洲风情在线资源站| 91丨国产丨九色丨pron| 中文字幕乱码一区二区免费| 亚洲主播在线播放| 久久丁香综合五月国产三级网站| 99精品国产热久久91蜜凸| 国产精品区一区二区三区 | 欧美天天综合网| 亚洲午夜久久久久中文字幕久| 国产综合一区二区| 91麻豆精品国产91久久久久久 | 亚洲三级视频在线观看| 不卡视频在线看| 亚洲欧洲成人av每日更新| 成人午夜视频免费看| 欧美国产精品久久| 成av人片一区二区| 亚洲猫色日本管| 欧美日韩精品一区二区在线播放| 一区二区理论电影在线观看| 91免费视频网址| 亚洲欧洲日韩av| 欧美高清hd18日本| 国内精品国产成人国产三级粉色 | 亚洲欧美综合色| 欧美视频一区二区三区在线观看| 国产欧美一区二区三区在线看蜜臀 | 久久成人免费日本黄色| wwwwww.欧美系列| 91在线精品一区二区| 亚洲一区av在线| 久久免费电影网| 欧美中文字幕一区| 经典一区二区三区| 亚洲欧美激情视频在线观看一区二区三区| 成人av在线播放网站| 日韩精品午夜视频| 久久久一区二区| 欧美成人激情免费网| 北岛玲一区二区三区四区| 日本vs亚洲vs韩国一区三区二区 | 国产精品理论在线观看| 欧美成人一区二区三区在线观看 | 国产精品二三区| 国产日韩v精品一区二区| 欧美三级韩国三级日本三斤| 国产精品伊人色| 韩国精品一区二区| 日韩成人午夜电影| 最好看的中文字幕久久| 日韩欧美一二区| 777亚洲妇女| 欧美人与性动xxxx| 欧美性一级生活| 欧美色男人天堂| 欧美视频自拍偷拍| 欧洲一区二区三区免费视频| 国产99精品视频| 99视频在线观看一区三区| 美国十次了思思久久精品导航| 亚洲一区二区三区中文字幕在线| 亚洲私人影院在线观看| 国产精品久久久久久久久果冻传媒| 精品国产91乱码一区二区三区 | 色婷婷av一区二区三区大白胸| 国产91丝袜在线18| 成人激情开心网| 99国内精品久久| 欧美亚洲高清一区二区三区不卡| 色妞www精品视频| 欧美少妇一区二区| 日韩精品影音先锋| 中文字幕av资源一区| 亚洲视频 欧洲视频| 亚洲一区二区三区中文字幕 | 成人激情免费电影网址| 色94色欧美sute亚洲线路一ni | 欧美二区三区91| 日韩午夜中文字幕|