-
Notifications
You must be signed in to change notification settings - Fork 203
Syntax Inspect Parameters
-
审核参数
- 1.1. MAX_TABLE_NAME_LENGTH
- 1.2. CHECK_TABLE_COMMENT
- 1.3. TABLE_COMMENT_LENGTH
- 1.4. CHECK_IDENTIFIER
- 1.5. CHECK_IDENTIFER_KEYWORD
- 1.6. CHECK_TABLE_CHARSET
- 1.7. TABLE_SUPPORT_CHARSET
- 1.8. CHECK_TABLE_ENGINE
- 1.9. TABLE_SUPPORT_ENGINE
- 1.10. ENABLE_PARTITION_TABLE
- 1.11. CHECK_TABLE_PRIMARY_KEY
- 1.12. TABLE_AT_LEAST_ONE_COLUMN
- 1.13. CHECK_TABLE_AUDIT_TYPE_COLUMNS
- 1.14. ENABLE_CREATE_TABLE_AS
- 1.15. ENABLE_CREATE_TABLE_LIKE
- 1.16. ENABLE_FOREIGN_KEY
- 1.17. CHECK_TABLE_AUTOINCREMENT_INIT_VALUE
- 1.18. ENABLE_CREATE_VIEW
- 1.19. MAX_COLUMN_NAME_LENGTH
- 1.20. CHECK_COLUMN_CHARSET
- 1.21. CHECK_COLUMN_COMMENT
- 1.22. COLUMN_MAX_CHAR_LENGTH
- 1.23. MAX_VARCHAR_LENGTH
- 1.24. ENABLE_COLUMN_BLOB_TYPE
- 1.25. ENABLE_COLUMN_JSON_TYPE
- 1.26. ENABLE_COLUMN_BIT_TYPE
- 1.27. ENABLE_COLUMN_TIMESTAMP_TYPE
- 1.28. CHECK_PRIMARYKEY_USE_BIGINT
- 1.29. CHECK_PRIMARYKEY_USE_UNSIGNED
- 1.30. CHECK_PRIMARYKEY_USE_AUTO_INCREMENT
- 1.31. ENABLE_COLUMN_NOT_NULL
- 1.32. ENABLE_COLUMN_TIME_NULL
- 1.33. CHECK_COLUMN_DEFAULT_VALUE
- 1.34. CHECK_COLUMN_FLOAT_DOUBLE
- 1.35. ENABLE_COLUMN_TYPE_CHANGE
- 1.36. ENABLE_COLUMN_CHANGE_COLUMN_NAME
- 1.37. ENABLE_COLUMN_TYPE_CHANGE_COMPATIBLE
- 1.38. CHECK_UNIQ_INDEX_PREFIX
- 1.39. CHECK_SECONDARY_INDEX_PREFIX
- 1.40. CHECK_FULLTEXT_INDEX_PREFIX
- 1.41. UNQI_INDEX_PREFIX
- 1.42. SECONDARY_INDEX_PREFIX
- 1.43. FULLTEXT_INDEX_PREFIX
- 1.44. SECONDARY_INDEX_MAX_KEY_PARTS
- 1.45. PRIMARYKEY_MAX_KEY_PARTS
- 1.46. MAX_INDEX_KEYS
- 1.47. ENABLE_INDEX_RENAME
- 1.48. ENABLE_DROP_COLS
- 1.49. ENABLE_DROP_INDEXES
- 1.50. ENABLE_DROP_PRIMARYKEY
- 1.51. ENABLE_DROP_TABLE
- 1.52. ENABLE_TRUNCATE_TABLE
- 1.53. ENABLE_RENAME_TABLE_NAME
- 1.54. ENABLE_MYSQL_MERGE_ALTER_TABLE
- 1.55. ENABLE_TIDB_MERGE_ALTER_TABLE
- 1.56. DML_MUST_HAVE_WHERE
- 1.57. DML_DISABLE_LIMIT
- 1.58. DML_DISABLE_ORDERBY
- 1.59. DML_DISABLE_SUBQUERY
- 1.60. CHECK_DML_JOIN_WITH_ON
- 1.61. EXPLAIN_RULE
- 1.62. MAX_AFFECTED_ROWS
- 1.63. MAX_INSERT_ROWS
- 1.64. DISABLE_REPLACE
- 1.65. DISABLE_INSERT_INTO_SELECT
- 1.66. DISABLE_ON_DUPLICATE
- 1.67. DISABLE_AUDIT_DML_TABLES
- 1.68. DISABLE_AUDIT_DDL_TABLES
描述:检查表名的长度
默认值:32
可选值:1~64
描述:检查表是否有注释
默认值:true
可选值:true/false
描述:表的注释长度
默认值:64
可选值:1~512
描述:对象名必须使用字符串范围,匹配正则[a-zA-Z0-9_]
默认值:true
可选值:true/false
描述:对象名是否可以使用关键字
默认值:false
可选值:true/false
描述:是否检查表的字符集和排序规则
默认值:true
可选值:true/false
描述:表支持的字符集
默认值:[{"charset": "utf8", "recommend": "utf8_general_ci"}, {"charset": "utf8mb4", "recommend": "utf8mb4_general_ci"}]
可选值:DB支持的字符集
例子:
default character set utf8mb4 collate utf8mb4_general_ci
描述:是否检查表的存储引擎
默认值:true
可选值:true/false
描述:表支持的存储引擎
默认值:["InnoDB"]
可选值:DB支持的存储引擎
例子:
ENGINE=InnoDB
描述:是否启用分区表
默认值:false
可选值:true/false
描述:检查表是否有主键
默认值:true
可选值:true/false
描述:表至少要有一列,语法默认支持,调整参数无效
默认值:true
可选值:true/false
描述:是否启用审计类型的字段检查,不检查字段名,仅检测字段定义是否符合要求,审计字段一般为创建时间
/更新时间
字段。
默认值:false
可选值:true/false
例子:
CREATED_AT datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
UPDATED_AT datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
描述:是否允许create table as语法
默认值:false
可选值:true/false
描述:是否允许create table like语法
默认值:false
可选值:true/false
描述:是否启用外键
默认值:false
可选值:true/false
描述:检查建表是自增列初始值是否为1
默认值:true
可选值:true/false
描述:是否支持创建和使用视图
默认值:true
可选值:true/false
描述:列名的长度
默认值:32
可选值:1~64
描述:是否检查列的字符集
默认值:true
可选值:true/false
描述:是否检查列的注释
默认值:true
可选值:true/false
描述:char长度大于N的时候需要改为varchar
默认值:64
可选值:1~254
描述:最大允许定义的varchar长度
默认值:65534
可选值:1~65534
描述:是否允许列的类型为BLOB/TEXT
默认值:true
可选值:true/false
是否允许列的类型为JSON
默认值:true
可选值:true/false
描述:是否允许列的类型为BIT
默认值:true
可选值:true/false
描述:是否允许列的类型为TIMESTAMP
默认值:false
可选值:true/false
描述:主键是否为bigint
默认值:true
可选值:true/false
描述:主键bigint是否为unsigned
默认值:true
可选值:true/false
描述:主键是否定义为自增
默认值:true
可选值:true/false
描述:列是否定义为NOT NULL
默认值:true
可选值:true/false
描述:是否允许时间类型定义为NULL
默认值:true
可选值:true/false
描述:列必须要有默认值
默认值:true
可选值:true/false
描述:将float/double转成int/bigint/decimal等
默认值:true
可选值:true/false
描述:是否允许变更列类型
默认值:false
可选值:true/false
描述:是否允许CHANGE列名操作
默认值:false
可选值:true/false
描述:是否开启CHANGE列类型兼容模式;开启后,允许同一类型,不同长度变更且变更后的长度必须大于变更前的长度的操作。允许操作举例: tinyint-> int、int->bigint、char->varchar 不允许操作举例:int -> tinyint、 varchar -> char。ENABLE_COLUMN_TYPE_CHANGE_COMPATIBLE设置为true的同时需要设置ENABLE_COLUMN_TYPE_CHANGE=false才生效。
默认值:false
可选值:true/false
描述:是否检查唯一索引前缀,如唯一索引必须以uniq_为前缀
默认值:true
可选值:true/false
描述:是否检查二级索引前缀,如普通索引必须以idx_为前缀
默认值:true
可选值:true/false
描述:是否检查全文索引前缀,如全文索引必须以full_为前缀
默认值:true
可选值:true/false
描述:定义唯一索引前缀,不区分大小写
默认值:UNIQ_
描述:定义二级索引前缀,不区分大小写
默认值:IDX_
描述:定义全文索引前缀,不区分大小写
默认值:FULL_
描述:组成二级索引的列数不能超过指定的个数,包括唯一索引
默认值:8
描述:组成主键索引的列数不能超过指定的个数
默认值:1
描述:最多有N个索引,包括唯一索引/二级索引
默认值:12
描述:是否允许rename索引名
默认值:false
可选值:true/false
描述:是否允许DROP列
默认值:true
可选值:true/false
描述:是否允许DROP索引
默认值:true
可选值:true/false
描述:是否允许DROP主键
默认值:false
可选值:true/false
描述:是否允许DROP TABLE
默认值:true
可选值:true/false
描述:是否允许TRUNCATE TABLE
默认值:true
可选值:true/false
描述:是否允许rename表名
默认值:false
可选值:true/false
描述:MySQL同一个表的多个ALTER是否合并为单条语句
默认值:true
可选值:true/false
描述:TiDB同一个表的多个ALTER是否合并为单条语句
默认值:false
可选值:true/false
描述:DML语句必须有where条件
默认值:true
可选值:true/false
描述:DML语句中不允许有LIMIT
默认值:true
可选值:true/false
描述:DML语句中不允许有orderby
默认值:true
可选值:true/false
描述:DML语句不能有子查询
默认值:true
可选值:true/false
描述:DML的JOIN语句必须有ON语句
默认值:true
可选值:true/false
描述:explain判断受影响行数时使用的规则("first", "max")。 "first": 使用第一行的explain结果作为受影响行数, "max": 使用explain结果中的最大值作为受影响行数
默认值:first
可选值:first/max
描述:最大影响行数,默认100
默认值:100
描述:一次最多允许insert的行, eg: insert into tbl(col,...) values(row1), (row2)...
默认值:100
描述:是否禁用replace语句
默认值:true
可选值:true/false
描述:是否禁用insert/replace into select语法
默认值:true
可选值:true/false
描述:是否禁止insert on duplicate语法
默认值:true
可选值:true/false
适用场景:多个库直接数据同步的主备表
描述:禁止对指定的表进行DML审核
默认值:空
配置例子:
"DISABLE_AUDIT_DML_TABLES": [
{
"DB": "test",
"Tables": [
"t1",
"t2"
],
"Reason": "xxx业务研发禁止审核和提交,请联系xxx"
}
]
适用场景:多个库直接数据同步的主备表
描述:禁止对指定的表进行DDL审核
默认值:空
配置例子:
"DISABLE_AUDIT_DDL_TABLES": [
{
"DB": "test",
"Tables": [
"t1"
],
"Reason": "xxx业务研发禁止审核和提交,请联系xxx"
},
{
"DB": "test1",
"Tables": [
"c1",
"c2"
],
"Reason": "xxx业务研发禁止审核和提交,请联系xxx"
}
]