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

主頁 > 知識庫 > 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一区二区三区在线观看| 欧美精品一区二区不卡| 美女视频网站久久| 国产精品美女久久久久av爽李琼 | 国产精品美女久久久久aⅴ| 欧美精品一区二区久久久| 欧美一区二区精品久久911| 欧美一区二区三区四区在线观看| 欧美一区二区免费观在线| 欧美一区二区三区日韩| 日韩免费一区二区| 日本一区二区三区四区 | av在线一区二区| 在线观看亚洲a| 欧美精品1区2区| 精品久久久久久久一区二区蜜臀| 337p日本欧洲亚洲大胆精品 | 日本精品裸体写真集在线观看 | k8久久久一区二区三区| 91麻豆国产在线观看| 欧美日韩日日骚| 精品精品国产高清a毛片牛牛 | 中文字幕在线视频一区| 玉足女爽爽91| 美日韩一级片在线观看| 不卡的电视剧免费网站有什么| 一本色道久久综合狠狠躁的推荐| 欧美日韩不卡视频| 国产情人综合久久777777| 亚洲午夜av在线| 国产精品自在在线| 欧美日本国产一区| 国产精品激情偷乱一区二区∴| 五月天亚洲精品| 99久久免费视频.com| 日韩美一区二区三区| 亚洲精品国产无天堂网2021| 麻豆91在线观看| 色综合久久综合| 久久嫩草精品久久久精品一| 亚洲综合丝袜美腿| 国产河南妇女毛片精品久久久| 精品视频1区2区| 中文字幕一区av| 精品一区二区成人精品| 欧美午夜精品一区| 国产精品免费网站在线观看| 久久99国产精品成人| 欧美三级电影在线看| 欧美国产日韩a欧美在线观看| 午夜日韩在线观看| 91论坛在线播放| 欧美激情艳妇裸体舞| 免费高清在线一区| 欧美日韩一区二区三区免费看| 国产日韩欧美精品综合| 激情五月婷婷综合网| 欧美电影在哪看比较好| 亚洲综合小说图片| 色欧美乱欧美15图片| 亚洲三级电影网站| 国产999精品久久久久久绿帽| 欧美一区二区三区日韩视频| 五月天一区二区三区| 欧美日本在线观看| 一区二区三区不卡视频| 色综合色狠狠综合色| 伊人色综合久久天天人手人婷| 不卡一区在线观看| 中文字幕不卡三区| 成人a区在线观看| 亚洲日本一区二区三区| av午夜一区麻豆| 亚洲欧洲成人自拍| 日本韩国欧美一区| 亚洲图片自拍偷拍| 欧美日韩一区二区在线观看| 午夜精品福利视频网站| 日韩一区二区三区电影| 美女视频黄 久久| 亚洲精品在线免费播放| 高清在线不卡av| 1024精品合集| 欧美日韩一二区| 久久精品国产亚洲高清剧情介绍 | 国产风韵犹存在线视精品| 久久免费午夜影院| 成人黄色777网| 一区二区理论电影在线观看| 日本乱码高清不卡字幕| 男女男精品视频网| 国产日韩综合av| 91久久一区二区| 蜜臀99久久精品久久久久久软件| 久久综合国产精品| 成人综合日日夜夜| 亚洲香蕉伊在人在线观| 日韩精品一区二区三区老鸭窝| 国产真实乱偷精品视频免| 国产精品色噜噜| 欧美日韩免费高清一区色橹橹| 免费看精品久久片| 中文字幕中文字幕在线一区| 欧美日韩一区国产| 国产精品77777| 亚洲免费伊人电影| 精品成人佐山爱一区二区| 白白色 亚洲乱淫| 日韩电影一二三区| 国产精品久久久久影视| 欧美日韩激情一区二区| 国产成人免费在线观看不卡| 日韩美女久久久| 精品日韩在线观看| 91激情在线视频| 国产成人在线免费观看| 婷婷久久综合九色国产成人| 国产欧美日韩在线看| 欧美日韩视频一区二区| 99久久精品久久久久久清纯| 久久激情五月激情| 一个色综合网站| 中文字幕第一区二区| 欧美成人一级视频| 在线看国产一区二区| 国产成人综合网| 久久精品国产精品亚洲红杏| 亚洲一区二区三区在线播放| 国产农村妇女精品| 欧美电影免费观看完整版| 欧美日韩国产片| 欧美视频精品在线观看| 91亚洲精品久久久蜜桃| 国产精品一区二区在线观看网站| 视频一区中文字幕| 亚洲高清免费一级二级三级| 国产精品福利电影一区二区三区四区| 精品国产一区二区三区久久影院 | 久久亚洲综合色| 91精品在线麻豆| 欧美色图第一页| 色狠狠av一区二区三区| 99久久精品免费看| 99久久综合99久久综合网站| 国产精品影视在线| 国产呦萝稀缺另类资源| 久久精品国产99| 捆绑调教美女网站视频一区| 人人精品人人爱| 久久精品国产一区二区| 九九九精品视频| 国内外成人在线| 国产精品小仙女| 成人动漫视频在线| av在线不卡观看免费观看| 成人精品一区二区三区中文字幕| 国产成人激情av| 99热99精品| 欧美制服丝袜第一页| 欧美午夜精品久久久久久孕妇| 欧美日韩免费观看一区三区| 7777女厕盗摄久久久| 欧美mv日韩mv亚洲| 久久久91精品国产一区二区三区| 国产欧美一区二区三区沐欲 | 欧美视频中文字幕| 欧美喷潮久久久xxxxx| 91精品国产综合久久久久久漫画 | 91一区一区三区| 91成人在线观看喷潮| 欧美精品电影在线播放| 欧美不卡在线视频| 中文字幕日韩精品一区| 亚洲午夜在线电影| 精品一区二区三区蜜桃| 国产精品 欧美精品| 日本道精品一区二区三区| 91精品国产91久久久久久最新毛片 | 蜜芽一区二区三区| 国产乱码精品一区二区三| 99这里只有久久精品视频| 欧美精品三级在线观看| 日韩你懂的电影在线观看| 中文字幕不卡一区| 日韩av一区二区三区| 岛国av在线一区| 欧美一区二区三区电影| 国产精品伦一区二区三级视频| 亚洲主播在线观看| 国产精品99久久久久久有的能看| 在线免费观看日韩欧美| 国产人成亚洲第一网站在线播放| 亚洲国产美女搞黄色| 国产成人午夜高潮毛片| 这里只有精品电影| 亚洲欧洲av在线| 国产一区二区中文字幕| 欧美精品123区| 自拍偷拍亚洲综合| 国产一区二区三区免费在线观看|