提交 4aa713f2 编写于 作者: martianzhang's avatar martianzhang

fix #237 update golden files

上级 a1c7d035
...@@ -582,11 +582,17 @@ func TestRuleIPString(t *testing.T) { ...@@ -582,11 +582,17 @@ func TestRuleIPString(t *testing.T) {
// LIT.002 // LIT.002
func TestRuleDataNotQuote(t *testing.T) { func TestRuleDataNotQuote(t *testing.T) {
common.Log.Debug("Entering function: %s", common.GetFunctionName()) common.Log.Debug("Entering function: %s", common.GetFunctionName())
sqls := []string{ sqls := [][]string{
"select col1,col2 from tbl where time < 2018-01-10", {
"select col1,col2 from tbl where time < 18-01-10", "select col1,col2 from tbl where time < 2018-01-10",
"select col1,col2 from tbl where time < 18-01-10",
},
{
// TODO:
// "INSERT INTO `pay_order` (`app_pay_obj`) VALUES('timestamp=2019-12-16');",
},
} }
for _, sql := range sqls { for _, sql := range sqls[0] {
q, err := NewQuery4Audit(sql) q, err := NewQuery4Audit(sql)
if err == nil { if err == nil {
rule := q.RuleDataNotQuote() rule := q.RuleDataNotQuote()
...@@ -597,6 +603,18 @@ func TestRuleDataNotQuote(t *testing.T) { ...@@ -597,6 +603,18 @@ func TestRuleDataNotQuote(t *testing.T) {
t.Error("sqlparser.Parse Error:", err) t.Error("sqlparser.Parse Error:", err)
} }
} }
for _, sql := range sqls[1] {
q, err := NewQuery4Audit(sql)
if err == nil {
rule := q.RuleDataNotQuote()
if rule.Item != "OK" {
t.Error("Rule not match:", rule.Item, "Expect : OK")
}
} else {
t.Error("sqlparser.Parse Error:", err)
}
}
common.Log.Debug("Exiting function: %s", common.GetFunctionName()) common.Log.Debug("Exiting function: %s", common.GetFunctionName())
} }
......
...@@ -192,6 +192,16 @@ select id from t where num not in(1,2,3); ...@@ -192,6 +192,16 @@ select id from t where num not in(1,2,3);
```sql ```sql
INSERT INTO tb (a) VALUES (1), (2) INSERT INTO tb (a) VALUES (1), (2)
``` ```
## DDL 语句中使用了中文全角引号
* **Item**:ARG.013
* **Severity**:L0
* **Content**:DDL 语句中使用了中文全角引号“”或‘’,这可能是书写错误,请确认是否符合预期。
* **Case**:
```sql
CREATE TABLE tb (a varchar(10) default '“”'
```
## 最外层 SELECT 未指定 WHERE 条件 ## 最外层 SELECT 未指定 WHERE 条件
* **Item**:CLA.001 * **Item**:CLA.001
...@@ -472,11 +482,11 @@ select c1,c2,c3 from tbl where c4 is null or c4 <> 1 ...@@ -472,11 +482,11 @@ select c1,c2,c3 from tbl where c4 is null or c4 <> 1
```sql ```sql
CREATE TABLE `tb`(`c` longblob NOT NULL); CREATE TABLE `tb`(`c` longblob NOT NULL);
``` ```
## TIMESTAMP 类型未设置默认值 ## TIMESTAMP 类型默认值检查异常
* **Item**:COL.013 * **Item**:COL.013
* **Severity**:L4 * **Severity**:L4
* **Content**:TIMESTAMP 类型未设置默认值 * **Content**:TIMESTAMP 类型建议设置默认值,且不建议使用 0 或 0000-00-00 00:00:00 作为默认值。可以考虑使用 1970-08-02 01:01:01
* **Case**: * **Case**:
```sql ```sql
...@@ -506,7 +516,7 @@ CREATE TABLE `tbl` (`c` blob DEFAULT NULL); ...@@ -506,7 +516,7 @@ CREATE TABLE `tbl` (`c` blob DEFAULT NULL);
* **Item**:COL.016 * **Item**:COL.016
* **Severity**:L1 * **Severity**:L1
* **Content**:INT(M) 在 integer 数据类型中,M 表示最大显示宽度。 在 INT(M) 中,M 的值跟 INT(M) 所占多少存储空间并无任何关系。 INT(3)、INT(4)、INT(8) 在磁盘上都是占用 4 bytes 的存储空间。 * **Content**:INT(M) 在 integer 数据类型中,M 表示最大显示宽度。 在 INT(M) 中,M 的值跟 INT(M) 所占多少存储空间并无任何关系。 INT(3)、INT(4)、INT(8) 在磁盘上都是占用 4 bytes 的存储空间。高版本 MySQL 已经不推荐设置整数显示宽度。
* **Case**: * **Case**:
```sql ```sql
...@@ -596,7 +606,7 @@ SELECT c3, COUNT(*) AS accounts FROM tab where c2 < 10000 GROUP BY c3 ORDER BY n ...@@ -596,7 +606,7 @@ SELECT c3, COUNT(*) AS accounts FROM tab where c2 < 10000 GROUP BY c3 ORDER BY n
* **Item**:FUN.003 * **Item**:FUN.003
* **Severity**:L3 * **Severity**:L3
* **Content**:在一些查询请求中,您需要强制让某一列或者某个表达式返回非 NULL 的值,从而让查询逻辑变得更简单,担忧不想将这个值存下来。使用 COALESCE() 函数来构造连接的表达式,这样即使是空值列也不会使整表达式变为 NULL。 * **Content**:在一些查询请求中,您需要强制让某一列或者某个表达式返回非 NULL 的值,从而让查询逻辑变得更简单,但又不想将这个值存下来。可以使用 COALESCE() 函数来构造连接的表达式,这样即使是空值列也不会使整表达式变为 NULL。
* **Case**: * **Case**:
```sql ```sql
...@@ -1042,6 +1052,26 @@ LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table; ...@@ -1042,6 +1052,26 @@ LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
```sql ```sql
SELECT * FROM tbl WHERE col = col = 'abc' SELECT * FROM tbl WHERE col = col = 'abc'
``` ```
## 建表语句中定义为 ON UPDATE CURRENT\_TIMESTAMP 的字段不建议包含业务逻辑
* **Item**:RES.010
* **Severity**:L2
* **Content**:定义为 ON UPDATE CURRENT\_TIMESTAMP 的字段在该表其他字段更新时会联动修改,如果包含业务逻辑用户可见会埋下隐患。后续如有批量修改数据却又不想修改该字段时会导致数据错误。
* **Case**:
```sql
CREATE TABLE category (category_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(25) NOT NULL, last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (category_id)
```
## 更新请求操作的表包含 ON UPDATE CURRENT\_TIMESTAMP 字段
* **Item**:RES.011
* **Severity**:L2
* **Content**:定义为 ON UPDATE CURRENT\_TIMESTAMP 的字段在该表其他字段更新时会联动修改,请注意检查。如不想修改字段的更新时间可以使用如下方法:UPDATE category SET name='ActioN', last\_update=last\_update WHERE category\_id=1
* **Case**:
```sql
UPDATE category SET name='ActioN', last_update=last_update WHERE category_id=1
```
## 请谨慎使用TRUNCATE操作 ## 请谨慎使用TRUNCATE操作
* **Item**:SEC.001 * **Item**:SEC.001
...@@ -1182,6 +1212,16 @@ SELECT * FROM staff WHERE name IN (SELECT NAME FROM customer ORDER BY name LIMIT ...@@ -1182,6 +1212,16 @@ SELECT * FROM staff WHERE name IN (SELECT NAME FROM customer ORDER BY name LIMIT
```sql ```sql
SELECT * FROM staff WHERE name IN (SELECT max(NAME) FROM customer) SELECT * FROM staff WHERE name IN (SELECT max(NAME) FROM customer)
``` ```
## 外层带有 LIMIT 输出限制的 UNION 联合查询,其内层查询建议也添加 LIMIT 输出限制
* **Item**:SUB.007
* **Severity**:L2
* **Content**:有时 MySQL 无法将限制条件从外层“下推”到内层,这会使得原本可以限制能够限制部分返回结果的条件无法应用到内层查询的优化上。比如:(SELECT \* FROM tb1 ORDER BY name) UNION ALL (SELECT \* FROM tb2 ORDER BY name) LIMIT 20; MySQL 会将两个子查询的结果放在一个临时表中,然后取出 20 条结果,可以通过在两个子查询中添加 LIMIT 20 来减少临时表中的数据。(SELECT \* FROM tb1 ORDER BY name LIMIT 20) UNION ALL (SELECT \* FROM tb2 ORDER BY name LIMIT 20) LIMIT 20;
* **Case**:
```sql
(SELECT * FROM tb1 ORDER BY name LIMIT 20) UNION ALL (SELECT * FROM tb2 ORDER BY name LIMIT 20) LIMIT 20;
```
## 不建议使用分区表 ## 不建议使用分区表
* **Item**:TBL.001 * **Item**:TBL.001
......
...@@ -66,5 +66,6 @@ ...@@ -66,5 +66,6 @@
TableHints: nil, TableHints: nil,
IsAfterUnionDistinct: false, IsAfterUnionDistinct: false,
IsInBraces: false, IsInBraces: false,
QueryBlockOffset: 0,
}, },
} }
...@@ -56,7 +56,8 @@ ...@@ -56,7 +56,8 @@
"LockTp": 0, "LockTp": 0,
"TableHints": null, "TableHints": null,
"IsAfterUnionDistinct": false, "IsAfterUnionDistinct": false,
"IsInBraces": false "IsInBraces": false,
"QueryBlockOffset": 0
} }
] ]
...@@ -210,7 +210,7 @@ ...@@ -210,7 +210,7 @@
} }
[]ast.Token{ []ast.Token{
{Type:57348, Val:"select", i:0}, {Type:57348, Val:"select", i:0},
{Type:57588, Val:"sql_calc_found_rows", i:0}, {Type:57590, Val:"sql_calc_found_rows", i:0},
{Type:57396, Val:"col", i:0}, {Type:57396, Val:"col", i:0},
{Type:57353, Val:"from", i:0}, {Type:57353, Val:"from", i:0},
{Type:57396, Val:"tbl", i:0}, {Type:57396, Val:"tbl", i:0},
......
char(10) euckr 20 char(10) cp852 10
char(256) euckr 510 char(256) cp852 255
binary(10) euckr 10 binary(10) cp852 10
binary(256) euckr 255 binary(256) cp852 255
varchar(10) euckr 21 varchar(10) cp852 11
varbinary(10) euckr 21 varbinary(10) cp852 11
enum('G','PG','PG-13','R','NC-17') euckr 1 enum('G','PG','PG-13','R','NC-17') cp852 1
set('one', 'two') euckr 1 set('one', 'two') cp852 1
not_exist euckr 0 not_exist cp852 0
char(-1) euckr 0 char(-1) cp852 0
char(10) latin1 10
char(256) latin1 255
binary(10) latin1 10
binary(256) latin1 255
varchar(10) latin1 11
varbinary(10) latin1 11
enum('G','PG','PG-13','R','NC-17') latin1 1
set('one', 'two') latin1 1
not_exist latin1 0
char(-1) latin1 0
char(10) sjis 20
char(256) sjis 510
binary(10) sjis 10
binary(256) sjis 255
varchar(10) sjis 21
varbinary(10) sjis 21
enum('G','PG','PG-13','R','NC-17') sjis 1
set('one', 'two') sjis 1
not_exist sjis 0
char(-1) sjis 0
char(10) binary 10
char(256) binary 255
binary(10) binary 10
binary(256) binary 255
varchar(10) binary 11
varbinary(10) binary 11
enum('G','PG','PG-13','R','NC-17') binary 1
set('one', 'two') binary 1
not_exist binary 0
char(-1) binary 0
char(10) cp1250 10
char(256) cp1250 255
binary(10) cp1250 10
binary(256) cp1250 255
varchar(10) cp1250 11
varbinary(10) cp1250 11
enum('G','PG','PG-13','R','NC-17') cp1250 1
set('one', 'two') cp1250 1
not_exist cp1250 0
char(-1) cp1250 0
char(10) cp866 10
char(256) cp866 255
binary(10) cp866 10
binary(256) cp866 255
varchar(10) cp866 11
varbinary(10) cp866 11
enum('G','PG','PG-13','R','NC-17') cp866 1
set('one', 'two') cp866 1
not_exist cp866 0
char(-1) cp866 0
char(10) gb2312 20 char(10) gb2312 20
char(256) gb2312 510 char(256) gb2312 510
binary(10) gb2312 10 binary(10) gb2312 10
...@@ -68,6 +18,66 @@ enum('G','PG','PG-13','R','NC-17') gb2312 1 ...@@ -68,6 +18,66 @@ enum('G','PG','PG-13','R','NC-17') gb2312 1
set('one', 'two') gb2312 1 set('one', 'two') gb2312 1
not_exist gb2312 0 not_exist gb2312 0
char(-1) gb2312 0 char(-1) gb2312 0
char(10) utf16le 40
char(256) utf16le 1020
binary(10) utf16le 10
binary(256) utf16le 255
varchar(10) utf16le 41
varbinary(10) utf16le 41
enum('G','PG','PG-13','R','NC-17') utf16le 1
set('one', 'two') utf16le 1
not_exist utf16le 0
char(-1) utf16le 0
char(10) cp850 10
char(256) cp850 255
binary(10) cp850 10
binary(256) cp850 255
varchar(10) cp850 11
varbinary(10) cp850 11
enum('G','PG','PG-13','R','NC-17') cp850 1
set('one', 'two') cp850 1
not_exist cp850 0
char(-1) cp850 0
char(10) cp1251 10
char(256) cp1251 255
binary(10) cp1251 10
binary(256) cp1251 255
varchar(10) cp1251 11
varbinary(10) cp1251 11
enum('G','PG','PG-13','R','NC-17') cp1251 1
set('one', 'two') cp1251 1
not_exist cp1251 0
char(-1) cp1251 0
char(10) cp1257 10
char(256) cp1257 255
binary(10) cp1257 10
binary(256) cp1257 255
varchar(10) cp1257 11
varbinary(10) cp1257 11
enum('G','PG','PG-13','R','NC-17') cp1257 1
set('one', 'two') cp1257 1
not_exist cp1257 0
char(-1) cp1257 0
char(10) cp866 10
char(256) cp866 255
binary(10) cp866 10
binary(256) cp866 255
varchar(10) cp866 11
varbinary(10) cp866 11
enum('G','PG','PG-13','R','NC-17') cp866 1
set('one', 'two') cp866 1
not_exist cp866 0
char(-1) cp866 0
char(10) greek 10
char(256) greek 255
binary(10) greek 10
binary(256) greek 255
varchar(10) greek 11
varbinary(10) greek 11
enum('G','PG','PG-13','R','NC-17') greek 1
set('one', 'two') greek 1
not_exist greek 0
char(-1) greek 0
char(10) koi8r 10 char(10) koi8r 10
char(256) koi8r 255 char(256) koi8r 255
binary(10) koi8r 10 binary(10) koi8r 10
...@@ -78,6 +88,106 @@ enum('G','PG','PG-13','R','NC-17') koi8r 1 ...@@ -78,6 +88,106 @@ enum('G','PG','PG-13','R','NC-17') koi8r 1
set('one', 'two') koi8r 1 set('one', 'two') koi8r 1
not_exist koi8r 0 not_exist koi8r 0
char(-1) koi8r 0 char(-1) koi8r 0
char(10) latin2 10
char(256) latin2 255
binary(10) latin2 10
binary(256) latin2 255
varchar(10) latin2 11
varbinary(10) latin2 11
enum('G','PG','PG-13','R','NC-17') latin2 1
set('one', 'two') latin2 1
not_exist latin2 0
char(-1) latin2 0
char(10) latin5 10
char(256) latin5 255
binary(10) latin5 10
binary(256) latin5 255
varchar(10) latin5 11
varbinary(10) latin5 11
enum('G','PG','PG-13','R','NC-17') latin5 1
set('one', 'two') latin5 1
not_exist latin5 0
char(-1) latin5 0
char(10) ascii 10
char(256) ascii 255
binary(10) ascii 10
binary(256) ascii 255
varchar(10) ascii 11
varbinary(10) ascii 11
enum('G','PG','PG-13','R','NC-17') ascii 1
set('one', 'two') ascii 1
not_exist ascii 0
char(-1) ascii 0
char(10) ucs2 20
char(256) ucs2 510
binary(10) ucs2 10
binary(256) ucs2 255
varchar(10) ucs2 21
varbinary(10) ucs2 21
enum('G','PG','PG-13','R','NC-17') ucs2 1
set('one', 'two') ucs2 1
not_exist ucs2 0
char(-1) ucs2 0
char(10) latin7 10
char(256) latin7 255
binary(10) latin7 10
binary(256) latin7 255
varchar(10) latin7 11
varbinary(10) latin7 11
enum('G','PG','PG-13','R','NC-17') latin7 1
set('one', 'two') latin7 1
not_exist latin7 0
char(-1) latin7 0
char(10) utf16 40
char(256) utf16 1020
binary(10) utf16 10
binary(256) utf16 255
varchar(10) utf16 41
varbinary(10) utf16 41
enum('G','PG','PG-13','R','NC-17') utf16 1
set('one', 'two') utf16 1
not_exist utf16 0
char(-1) utf16 0
char(10) keybcs2 10
char(256) keybcs2 255
binary(10) keybcs2 10
binary(256) keybcs2 255
varchar(10) keybcs2 11
varbinary(10) keybcs2 11
enum('G','PG','PG-13','R','NC-17') keybcs2 1
set('one', 'two') keybcs2 1
not_exist keybcs2 0
char(-1) keybcs2 0
char(10) cp932 20
char(256) cp932 510
binary(10) cp932 10
binary(256) cp932 255
varchar(10) cp932 21
varbinary(10) cp932 21
enum('G','PG','PG-13','R','NC-17') cp932 1
set('one', 'two') cp932 1
not_exist cp932 0
char(-1) cp932 0
char(10) sjis 20
char(256) sjis 510
binary(10) sjis 10
binary(256) sjis 255
varchar(10) sjis 21
varbinary(10) sjis 21
enum('G','PG','PG-13','R','NC-17') sjis 1
set('one', 'two') sjis 1
not_exist sjis 0
char(-1) sjis 0
char(10) armscii8 10
char(256) armscii8 255
binary(10) armscii8 10
binary(256) armscii8 255
varchar(10) armscii8 11
varbinary(10) armscii8 11
enum('G','PG','PG-13','R','NC-17') armscii8 1
set('one', 'two') armscii8 1
not_exist armscii8 0
char(-1) armscii8 0
char(10) macce 10 char(10) macce 10
char(256) macce 255 char(256) macce 255
binary(10) macce 10 binary(10) macce 10
...@@ -88,6 +198,26 @@ enum('G','PG','PG-13','R','NC-17') macce 1 ...@@ -88,6 +198,26 @@ enum('G','PG','PG-13','R','NC-17') macce 1
set('one', 'two') macce 1 set('one', 'two') macce 1
not_exist macce 0 not_exist macce 0
char(-1) macce 0 char(-1) macce 0
char(10) macroman 10
char(256) macroman 255
binary(10) macroman 10
binary(256) macroman 255
varchar(10) macroman 11
varbinary(10) macroman 11
enum('G','PG','PG-13','R','NC-17') macroman 1
set('one', 'two') macroman 1
not_exist macroman 0
char(-1) macroman 0
char(10) ujis 30
char(256) ujis 765
binary(10) ujis 10
binary(256) ujis 255
varchar(10) ujis 31
varbinary(10) ujis 31
enum('G','PG','PG-13','R','NC-17') ujis 1
set('one', 'two') ujis 1
not_exist ujis 0
char(-1) ujis 0
char(10) utf8 30 char(10) utf8 30
char(256) utf8 765 char(256) utf8 765
binary(10) utf8 10 binary(10) utf8 10
...@@ -108,76 +238,16 @@ enum('G','PG','PG-13','R','NC-17') hp8 1 ...@@ -108,76 +238,16 @@ enum('G','PG','PG-13','R','NC-17') hp8 1
set('one', 'two') hp8 1 set('one', 'two') hp8 1
not_exist hp8 0 not_exist hp8 0
char(-1) hp8 0 char(-1) hp8 0
char(10) swe7 10 char(10) cp1250 10
char(256) swe7 255 char(256) cp1250 255
binary(10) swe7 10 binary(10) cp1250 10
binary(256) swe7 255 binary(256) cp1250 255
varchar(10) swe7 11 varchar(10) cp1250 11
varbinary(10) swe7 11 varbinary(10) cp1250 11
enum('G','PG','PG-13','R','NC-17') swe7 1 enum('G','PG','PG-13','R','NC-17') cp1250 1
set('one', 'two') swe7 1 set('one', 'two') cp1250 1
not_exist swe7 0 not_exist cp1250 0
char(-1) swe7 0 char(-1) cp1250 0
char(10) tis620 10
char(256) tis620 255
binary(10) tis620 10
binary(256) tis620 255
varchar(10) tis620 11
varbinary(10) tis620 11
enum('G','PG','PG-13','R','NC-17') tis620 1
set('one', 'two') tis620 1
not_exist tis620 0
char(-1) tis620 0
char(10) armscii8 10
char(256) armscii8 255
binary(10) armscii8 10
binary(256) armscii8 255
varchar(10) armscii8 11
varbinary(10) armscii8 11
enum('G','PG','PG-13','R','NC-17') armscii8 1
set('one', 'two') armscii8 1
not_exist armscii8 0
char(-1) armscii8 0
char(10) hebrew 10
char(256) hebrew 255
binary(10) hebrew 10
binary(256) hebrew 255
varchar(10) hebrew 11
varbinary(10) hebrew 11
enum('G','PG','PG-13','R','NC-17') hebrew 1
set('one', 'two') hebrew 1
not_exist hebrew 0
char(-1) hebrew 0
char(10) latin7 10
char(256) latin7 255
binary(10) latin7 10
binary(256) latin7 255
varchar(10) latin7 11
varbinary(10) latin7 11
enum('G','PG','PG-13','R','NC-17') latin7 1
set('one', 'two') latin7 1
not_exist latin7 0
char(-1) latin7 0
char(10) ucs2 20
char(256) ucs2 510
binary(10) ucs2 10
binary(256) ucs2 255
varchar(10) ucs2 21
varbinary(10) ucs2 21
enum('G','PG','PG-13','R','NC-17') ucs2 1
set('one', 'two') ucs2 1
not_exist ucs2 0
char(-1) ucs2 0
char(10) utf16 40
char(256) utf16 1020
binary(10) utf16 10
binary(256) utf16 255
varchar(10) utf16 41
varbinary(10) utf16 41
enum('G','PG','PG-13','R','NC-17') utf16 1
set('one', 'two') utf16 1
not_exist utf16 0
char(-1) utf16 0
char(10) eucjpms 30 char(10) eucjpms 30
char(256) eucjpms 765 char(256) eucjpms 765
binary(10) eucjpms 10 binary(10) eucjpms 10
...@@ -188,6 +258,56 @@ enum('G','PG','PG-13','R','NC-17') eucjpms 1 ...@@ -188,6 +258,56 @@ enum('G','PG','PG-13','R','NC-17') eucjpms 1
set('one', 'two') eucjpms 1 set('one', 'two') eucjpms 1
not_exist eucjpms 0 not_exist eucjpms 0
char(-1) eucjpms 0 char(-1) eucjpms 0
char(10) koi8u 10
char(256) koi8u 255
binary(10) koi8u 10
binary(256) koi8u 255
varchar(10) koi8u 11
varbinary(10) koi8u 11
enum('G','PG','PG-13','R','NC-17') koi8u 1
set('one', 'two') koi8u 1
not_exist koi8u 0
char(-1) koi8u 0
char(10) latin1 10
char(256) latin1 255
binary(10) latin1 10
binary(256) latin1 255
varchar(10) latin1 11
varbinary(10) latin1 11
enum('G','PG','PG-13','R','NC-17') latin1 1
set('one', 'two') latin1 1
not_exist latin1 0
char(-1) latin1 0
char(10) swe7 10
char(256) swe7 255
binary(10) swe7 10
binary(256) swe7 255
varchar(10) swe7 11
varbinary(10) swe7 11
enum('G','PG','PG-13','R','NC-17') swe7 1
set('one', 'two') swe7 1
not_exist swe7 0
char(-1) swe7 0
char(10) binary 10
char(256) binary 255
binary(10) binary 10
binary(256) binary 255
varchar(10) binary 11
varbinary(10) binary 11
enum('G','PG','PG-13','R','NC-17') binary 1
set('one', 'two') binary 1
not_exist binary 0
char(-1) binary 0
char(10) euckr 20
char(256) euckr 510
binary(10) euckr 10
binary(256) euckr 255
varchar(10) euckr 21
varbinary(10) euckr 21
enum('G','PG','PG-13','R','NC-17') euckr 1
set('one', 'two') euckr 1
not_exist euckr 0
char(-1) euckr 0
char(10) gbk 20 char(10) gbk 20
char(256) gbk 510 char(256) gbk 510
binary(10) gbk 10 binary(10) gbk 10
...@@ -198,76 +318,6 @@ enum('G','PG','PG-13','R','NC-17') gbk 1 ...@@ -198,76 +318,6 @@ enum('G','PG','PG-13','R','NC-17') gbk 1
set('one', 'two') gbk 1 set('one', 'two') gbk 1
not_exist gbk 0 not_exist gbk 0
char(-1) gbk 0 char(-1) gbk 0
char(10) utf8mb4 40
char(256) utf8mb4 1020
binary(10) utf8mb4 10
binary(256) utf8mb4 255
varchar(10) utf8mb4 41
varbinary(10) utf8mb4 41
enum('G','PG','PG-13','R','NC-17') utf8mb4 1
set('one', 'two') utf8mb4 1
not_exist utf8mb4 0
char(-1) utf8mb4 0
char(10) cp850 10
char(256) cp850 255
binary(10) cp850 10
binary(256) cp850 255
varchar(10) cp850 11
varbinary(10) cp850 11
enum('G','PG','PG-13','R','NC-17') cp850 1
set('one', 'two') cp850 1
not_exist cp850 0
char(-1) cp850 0
char(10) gb18030 40
char(256) gb18030 1020
binary(10) gb18030 10
binary(256) gb18030 255
varchar(10) gb18030 41
varbinary(10) gb18030 41
enum('G','PG','PG-13','R','NC-17') gb18030 1
set('one', 'two') gb18030 1
not_exist gb18030 0
char(-1) gb18030 0
char(10) utf32 40
char(256) utf32 1020
binary(10) utf32 10
binary(256) utf32 255
varchar(10) utf32 41
varbinary(10) utf32 41
enum('G','PG','PG-13','R','NC-17') utf32 1
set('one', 'two') utf32 1
not_exist utf32 0
char(-1) utf32 0
char(10) cp1256 10
char(256) cp1256 255
binary(10) cp1256 10
binary(256) cp1256 255
varchar(10) cp1256 11
varbinary(10) cp1256 11
enum('G','PG','PG-13','R','NC-17') cp1256 1
set('one', 'two') cp1256 1
not_exist cp1256 0
char(-1) cp1256 0
char(10) cp1257 10
char(256) cp1257 255
binary(10) cp1257 10
binary(256) cp1257 255
varchar(10) cp1257 11
varbinary(10) cp1257 11
enum('G','PG','PG-13','R','NC-17') cp1257 1
set('one', 'two') cp1257 1
not_exist cp1257 0
char(-1) cp1257 0
char(10) cp932 20
char(256) cp932 510
binary(10) cp932 10
binary(256) cp932 255
varchar(10) cp932 21
varbinary(10) cp932 21
enum('G','PG','PG-13','R','NC-17') cp932 1
set('one', 'two') cp932 1
not_exist cp932 0
char(-1) cp932 0
char(10) geostd8 10 char(10) geostd8 10
char(256) geostd8 255 char(256) geostd8 255
binary(10) geostd8 10 binary(10) geostd8 10
...@@ -278,36 +328,36 @@ enum('G','PG','PG-13','R','NC-17') geostd8 1 ...@@ -278,36 +328,36 @@ enum('G','PG','PG-13','R','NC-17') geostd8 1
set('one', 'two') geostd8 1 set('one', 'two') geostd8 1
not_exist geostd8 0 not_exist geostd8 0
char(-1) geostd8 0 char(-1) geostd8 0
char(10) latin5 10 char(10) hebrew 10
char(256) latin5 255 char(256) hebrew 255
binary(10) latin5 10 binary(10) hebrew 10
binary(256) latin5 255 binary(256) hebrew 255
varchar(10) latin5 11 varchar(10) hebrew 11
varbinary(10) latin5 11 varbinary(10) hebrew 11
enum('G','PG','PG-13','R','NC-17') latin5 1 enum('G','PG','PG-13','R','NC-17') hebrew 1
set('one', 'two') latin5 1 set('one', 'two') hebrew 1
not_exist latin5 0 not_exist hebrew 0
char(-1) latin5 0 char(-1) hebrew 0
char(10) macroman 10 char(10) utf32 40
char(256) macroman 255 char(256) utf32 1020
binary(10) macroman 10 binary(10) utf32 10
binary(256) macroman 255 binary(256) utf32 255
varchar(10) macroman 11 varchar(10) utf32 41
varbinary(10) macroman 11 varbinary(10) utf32 41
enum('G','PG','PG-13','R','NC-17') macroman 1 enum('G','PG','PG-13','R','NC-17') utf32 1
set('one', 'two') macroman 1 set('one', 'two') utf32 1
not_exist macroman 0 not_exist utf32 0
char(-1) macroman 0 char(-1) utf32 0
char(10) ascii 10 char(10) utf8mb4 40
char(256) ascii 255 char(256) utf8mb4 1020
binary(10) ascii 10 binary(10) utf8mb4 10
binary(256) ascii 255 binary(256) utf8mb4 255
varchar(10) ascii 11 varchar(10) utf8mb4 41
varbinary(10) ascii 11 varbinary(10) utf8mb4 41
enum('G','PG','PG-13','R','NC-17') ascii 1 enum('G','PG','PG-13','R','NC-17') utf8mb4 1
set('one', 'two') ascii 1 set('one', 'two') utf8mb4 1
not_exist ascii 0 not_exist utf8mb4 0
char(-1) ascii 0 char(-1) utf8mb4 0
char(10) big5 20 char(10) big5 20
char(256) big5 510 char(256) big5 510
binary(10) big5 10 binary(10) big5 10
...@@ -318,26 +368,6 @@ enum('G','PG','PG-13','R','NC-17') big5 1 ...@@ -318,26 +368,6 @@ enum('G','PG','PG-13','R','NC-17') big5 1
set('one', 'two') big5 1 set('one', 'two') big5 1
not_exist big5 0 not_exist big5 0
char(-1) big5 0 char(-1) big5 0
char(10) cp1251 10
char(256) cp1251 255
binary(10) cp1251 10
binary(256) cp1251 255
varchar(10) cp1251 11
varbinary(10) cp1251 11
enum('G','PG','PG-13','R','NC-17') cp1251 1
set('one', 'two') cp1251 1
not_exist cp1251 0
char(-1) cp1251 0
char(10) cp852 10
char(256) cp852 255
binary(10) cp852 10
binary(256) cp852 255
varchar(10) cp852 11
varbinary(10) cp852 11
enum('G','PG','PG-13','R','NC-17') cp852 1
set('one', 'two') cp852 1
not_exist cp852 0
char(-1) cp852 0
char(10) dec8 10 char(10) dec8 10
char(256) dec8 255 char(256) dec8 255
binary(10) dec8 10 binary(10) dec8 10
...@@ -348,63 +378,33 @@ enum('G','PG','PG-13','R','NC-17') dec8 1 ...@@ -348,63 +378,33 @@ enum('G','PG','PG-13','R','NC-17') dec8 1
set('one', 'two') dec8 1 set('one', 'two') dec8 1
not_exist dec8 0 not_exist dec8 0
char(-1) dec8 0 char(-1) dec8 0
char(10) greek 10 char(10) gb18030 40
char(256) greek 255 char(256) gb18030 1020
binary(10) greek 10 binary(10) gb18030 10
binary(256) greek 255 binary(256) gb18030 255
varchar(10) greek 11 varchar(10) gb18030 41
varbinary(10) greek 11 varbinary(10) gb18030 41
enum('G','PG','PG-13','R','NC-17') greek 1 enum('G','PG','PG-13','R','NC-17') gb18030 1
set('one', 'two') greek 1 set('one', 'two') gb18030 1
not_exist greek 0 not_exist gb18030 0
char(-1) greek 0 char(-1) gb18030 0
char(10) keybcs2 10 char(10) tis620 10
char(256) keybcs2 255 char(256) tis620 255
binary(10) keybcs2 10 binary(10) tis620 10
binary(256) keybcs2 255 binary(256) tis620 255
varchar(10) keybcs2 11 varchar(10) tis620 11
varbinary(10) keybcs2 11 varbinary(10) tis620 11
enum('G','PG','PG-13','R','NC-17') keybcs2 1 enum('G','PG','PG-13','R','NC-17') tis620 1
set('one', 'two') keybcs2 1 set('one', 'two') tis620 1
not_exist keybcs2 0 not_exist tis620 0
char(-1) keybcs2 0 char(-1) tis620 0
char(10) koi8u 10 char(10) cp1256 10
char(256) koi8u 255 char(256) cp1256 255
binary(10) koi8u 10 binary(10) cp1256 10
binary(256) koi8u 255 binary(256) cp1256 255
varchar(10) koi8u 11 varchar(10) cp1256 11
varbinary(10) koi8u 11 varbinary(10) cp1256 11
enum('G','PG','PG-13','R','NC-17') koi8u 1 enum('G','PG','PG-13','R','NC-17') cp1256 1
set('one', 'two') koi8u 1 set('one', 'two') cp1256 1
not_exist koi8u 0 not_exist cp1256 0
char(-1) koi8u 0 char(-1) cp1256 0
char(10) latin2 10
char(256) latin2 255
binary(10) latin2 10
binary(256) latin2 255
varchar(10) latin2 11
varbinary(10) latin2 11
enum('G','PG','PG-13','R','NC-17') latin2 1
set('one', 'two') latin2 1
not_exist latin2 0
char(-1) latin2 0
char(10) ujis 30
char(256) ujis 765
binary(10) ujis 10
binary(256) ujis 255
varchar(10) ujis 31
varbinary(10) ujis 31
enum('G','PG','PG-13','R','NC-17') ujis 1
set('one', 'two') ujis 1
not_exist ujis 0
char(-1) ujis 0
char(10) utf16le 40
char(256) utf16le 1020
binary(10) utf16le 10
binary(256) utf16le 255
varchar(10) utf16le 41
varbinary(10) utf16le 41
enum('G','PG','PG-13','R','NC-17') utf16le 1
set('one', 'two') utf16le 1
not_exist utf16le 0
char(-1) utf16le 0
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册