成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

mysqlSQL_MODE是什么

本篇內(nèi)容介紹了“MySQL SQL_MODE是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了濱湖免費建站歡迎大家使用!

SQL_MODE是MYSQL的一個環(huán)境變量, 它定義了MYSQL應該支持的SQL語法,對數(shù)據(jù)的校驗模式等等。

1, 查看方式

mysql> select @@sql_mode;
mysql> show variables like 'sql_mode%';
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@sql_mode                                                                                                                                |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

2, 修改方式

2.1,在MySQL中執(zhí)行:

set sql_mode=(select replace(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

但是這種方法只是做了session(會話)級別的暫時修改。

2.2,我們可以通過更改配置文件my.cnf或者my.ini來實現(xiàn)永久修改。

sudo vi /etc/mysql/my.cnf
在最后添加以下內(nèi)容,將對應的mode刪除
[mysqld]
sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

重啟mysql,客戶端重新登錄,即可生效。

service mysql restart

如果是Laravel框架中,還需要在config/database.php文件中,將 mysql中的strict嚴格模式改為false.

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true, => 改為false
            'engine' => null,
        ]

3, 經(jīng)常值

ONLY_FULL_GROUP_BY:

對于GROUP BY聚合操作,如果在SELECT中的列,沒有在GROUP BY中出現(xiàn),那么將認為這個SQL是不合法的,因為列不在GROUP BY從句中

因為有only_full_group_by,select字段只能含有group by的字段,如果含有任何其他字段,都會報1055的錯,即只能是

select col1, col2 from tb1 group by col1, col2;

實例:

mysql> select * from tt1;
+----+-------+--------+
| id | name  | gender |
+----+-------+--------+
|  1 | xiong |      0 |
|  2 | ying  |      0 |
|  3 | cai   |      0 |
|  4 | zhang |      0 |
|  5 | li    |      1 |
|  6 | wang  |      1 |
+----+-------+--------+
6 rows in set (0.00 sec)
mysql> select * from tt1 group by name;
ERROR 1055 (42000):
mysql> select name from tt1 group by name;
+-------+
| name  |
+-------+
| cai   |
| li    |
| wang  |
| xiong |
| ying  |
| zhang |
+-------+
6 rows in set (0.00 sec)

所以我們要正常使用group by 的話就必須刪除掉only_full_group_by。將only_full_group_by替換成空格。此時

mysql> select * from tt1 group by name;
+----+-------+--------+
| id | name  | gender |
+----+-------+--------+
|  3 | cai   |      0 |
|  5 | li    |      1 |
|  6 | wang  |      1 |
|  1 | xiong |      0 |
|  2 | ying  |      0 |
|  4 | zhang |      0 |
+----+-------+--------+
6 rows in set (0.00 sec)

STRICT_TRANS_TABLES:

在該模式下,如果一個值不能插入到一個事務表中,則中斷當前的操作,對非事務表不做任何限制。

NO_ZERO_IN_DATE:

在嚴格模式,不接受月或日部分為0的日期。如果使用IGNORE選項,我們?yōu)轭愃频娜掌诓迦?#39;0000-00-00'。在非嚴格模式,可以接受該日期,但會生成警告。

NO_ZERO_DATE:

在嚴格模式,不要將 '0000-00-00'作為合法日期。你仍然可以用IGNORE選項插入零日期。在非嚴格模式,可以接受該日期,但會生成警告。

ERROR_FOR_DIVISION_BY_ZERO:

在嚴格模式,在INSERT或UPDATE過程中,如果被零除(或MOD(X,0)),則產(chǎn)生錯誤(否則為警告)。如果未給出該模式,被零除時MySQL返回NULL。如果用到INSERT IGNORE或UPDATE IGNORE中,MySQL生成被零除警告,但操作結果為NULL。

NO_AUTO_CREATE_USER:

防止GRANT自動創(chuàng)建新用戶,除非還指定了密碼。

NO_ENGINE_SUBSTITUTION:

如果需要的存儲引擎被禁用或未編譯,那么拋出錯誤。不設置此值時,用默認的存儲引擎替代,并拋出一個異常。

“mysql SQL_MODE是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

當前文章:mysqlSQL_MODE是什么
本文來源:http://jinyejixie.com/article48/ppicep.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、網(wǎng)站收錄外貿(mào)網(wǎng)站建設、網(wǎng)站維護微信小程序、虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設
屏南县| 洛南县| 巴彦县| 平遥县| 潼南县| 奎屯市| 崇左市| 宜川县| 宜兰市| 精河县| 上思县| 甘肃省| 札达县| 罗甸县| 光山县| 光山县| 闵行区| 阿拉善左旗| 上思县| 汽车| 平利县| 和静县| 鹤山市| 土默特左旗| 漯河市| 贵定县| 贺兰县| 南靖县| 武宣县| 盐津县| 延安市| 山丹县| 喀喇沁旗| 安岳县| 宜宾市| 喜德县| 乐业县| 留坝县| 临沧市| 富源县| 湘潭市|