国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql中的sql

2024-07-24 12:41:45
字體:
來源:轉載
供稿:網友

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

mysql數據庫的中有一個環境變量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: 2mysql> 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會嚴格的進行數據的校驗,當發現插入列值未滿足要求,直接報告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 1mysql> 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)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥中县| 蒙阴县| 黄大仙区| 永宁县| 宁都县| 楚雄市| 亚东县| 盐津县| 旬阳县| 肃南| 东海县| 九江市| 句容市| 丰镇市| 纳雍县| 金华市| 板桥市| 冷水江市| 平原县| 张家界市| 双江| 亳州市| 清水县| 永和县| 武鸣县| 维西| 全椒县| 惠东县| 晴隆县| 龙门县| 章丘市| 绩溪县| 沅陵县| 丹江口市| 松潘县| 靖边县| 乌苏市| 威信县| 富裕县| 肃北| 宁波市|