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

主頁 > 知識庫 > 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模式實例詳解的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    午夜精品久久久久久久久久久| 中文字幕欧美三区| 色八戒一区二区三区| 成人黄色软件下载| 国产精品一区二区黑丝| 毛片不卡一区二区| 日本麻豆一区二区三区视频| 日韩av高清在线观看| 青青草原综合久久大伊人精品优势| 午夜精品久久久久久不卡8050| 亚洲成人黄色小说| 午夜电影网一区| 日韩精品一区第一页| 日本不卡一二三| 久久精品免费观看| 国产一区二区三区国产| 国产成人在线观看| 成人动漫在线一区| 99麻豆久久久国产精品免费| 91麻豆产精品久久久久久| 91影院在线观看| 91福利区一区二区三区| 欧美日韩国产综合草草| 欧美亚洲综合色| 在线观看网站黄不卡| 色综合久久久久综合| 色婷婷国产精品| 91久久人澡人人添人人爽欧美| 极品少妇一区二区| 久久精品噜噜噜成人av农村| 狠狠色综合日日| 高清av一区二区| 99国产精品国产精品久久| 97精品超碰一区二区三区| 色婷婷av一区| 欧美性受xxxx| 欧美一区二区三区不卡| 欧美电影免费提供在线观看| 久久一日本道色综合| 国产欧美久久久精品影院| 国产精品久久久久影院亚瑟| 亚洲美女视频在线观看| 亚洲午夜久久久| 蜜臀av一级做a爰片久久| 狠狠色综合播放一区二区| 成人午夜av在线| 91国在线观看| 日韩一二三区视频| 国产欧美日韩另类一区| 亚洲综合激情小说| 美女在线视频一区| 国产91露脸合集magnet| 色综合视频一区二区三区高清| 99精品视频中文字幕| 色哟哟一区二区在线观看| 在线亚洲人成电影网站色www| 日韩美女在线视频| 欧美大片一区二区| 中文字幕乱码亚洲精品一区| 亚洲午夜精品17c| 久久狠狠亚洲综合| aaa欧美大片| 欧美福利一区二区| 久久精品人人做人人综合 | 一区在线观看视频| 亚洲妇熟xx妇色黄| 国产精品一区二区久激情瑜伽| 99re热这里只有精品免费视频| 欧美日韩国产天堂| 日韩视频123| 亚洲乱码国产乱码精品精可以看 | 亚洲在线视频免费观看| 日本美女一区二区| 成人h版在线观看| 欧美日韩mp4| 欧美国产精品一区| 美女视频黄a大片欧美| 91一区一区三区| 2020国产成人综合网| 尤物在线观看一区| 国产精品影视天天线| 欧美日韩成人一区二区| 国产精品婷婷午夜在线观看| 亚洲一区二区精品3399| 精品一区二区久久久| 高清成人免费视频| 欧美一区二区三区在线观看| 亚洲三级在线免费| 国产激情视频一区二区三区欧美| 欧美日韩视频在线第一区| 国产精品国模大尺度视频| 蜜桃视频在线一区| 欧美性大战久久久久久久| 中文字幕高清不卡| 国产主播一区二区| 日韩一区二区三区在线| 一区二区三区欧美久久| 成人av片在线观看| 久久综合九色综合欧美98| 午夜精品aaa| 欧美日韩在线观看一区二区 | 亚洲韩国精品一区| 91网址在线看| 久久影视一区二区| 久草在线在线精品观看| 日韩午夜激情av| 天天做天天摸天天爽国产一区 | 久久久久久97三级| 毛片av中文字幕一区二区| 91精品国产综合久久久久久漫画| 一区二区在线看| 91麻豆国产精品久久| 亚洲欧洲日产国产综合网| 国产成人精品综合在线观看| 久久蜜臀中文字幕| 国产乱人伦精品一区二区在线观看| 91在线视频观看| 亚洲精品国久久99热| 一本久久综合亚洲鲁鲁五月天 | 国产日韩精品一区二区浪潮av| 蜜桃av一区二区三区| 欧美一级视频精品观看| 日本aⅴ精品一区二区三区 | 波多野结衣中文字幕一区 | 亚洲视频在线一区| 99久久久精品免费观看国产蜜| 国产精品女人毛片| 丁香天五香天堂综合| 国产精品美女一区二区三区| 99国产欧美另类久久久精品 | 免费高清在线视频一区·| 欧美一区二区三区系列电影| 青青草精品视频| 精品欧美黑人一区二区三区| 国产自产视频一区二区三区| 国产日产欧美一区| 99精品国产热久久91蜜凸| 伊人色综合久久天天人手人婷| 欧美亚洲另类激情小说| 视频一区中文字幕国产| 欧美日韩一级片在线观看| 亚洲成人777| 欧美日韩dvd在线观看| 国内精品久久久久影院薰衣草 | 欧美不卡视频一区| 国产一二三精品| 国产精品情趣视频| 欧美视频中文字幕| 免费的成人av| 中文字幕国产一区| 欧美中文一区二区三区| 久久精品久久99精品久久| 欧美国产日本视频| 日本精品一区二区三区四区的功能| 亚洲成人av资源| 久久久精品日韩欧美| 国产a精品视频| 一区二区三区在线免费播放 | 欧美日韩精品高清| 极品少妇xxxx精品少妇偷拍| 国产精品美女久久久久久久网站| 欧美天堂亚洲电影院在线播放| 免费看欧美女人艹b| 国产精品情趣视频| 欧美日韩精品高清| 成人国产精品免费观看| 午夜欧美2019年伦理| 久久久久九九视频| 欧美视频在线一区二区三区| 美女一区二区三区在线观看| 国产清纯在线一区二区www| 日本韩国精品一区二区在线观看| 亚洲五月六月丁香激情| 欧美国产精品一区二区| 欧美剧情片在线观看| 高清不卡一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲视频一区在线观看| 欧美成人一级视频| 在线观看欧美日本| 国产精品一卡二| 亚洲高清在线精品| 国产精品私人自拍| 精品久久久久99| 欧美人xxxx| 色94色欧美sute亚洲13| 国产成人精品免费看| 日韩国产精品大片| 日韩毛片高清在线播放| 精品国产免费一区二区三区四区| 一本到三区不卡视频| 国产精品乡下勾搭老头1| 午夜精品影院在线观看| 亚洲国产成人自拍| 2021国产精品久久精品| 91免费观看国产| 国产精品一区不卡| 国内外成人在线| 免费成人在线影院| 日本不卡一二三区黄网|