Skip to content

Syntax Inspect Parameters

zongfei.fu edited this page Mar 13, 2024 · 3 revisions

1. 审核参数

1.1. MAX_TABLE_NAME_LENGTH

描述:检查表名的长度

默认值:32

可选值:1~64

1.2. CHECK_TABLE_COMMENT

描述:检查表是否有注释

默认值:true

可选值:true/false

1.3. TABLE_COMMENT_LENGTH

描述:表的注释长度

默认值:64

可选值:1~512

1.4. CHECK_IDENTIFIER

描述:对象名必须使用字符串范围,匹配正则[a-zA-Z0-9_]

默认值:true

可选值:true/false

1.5. CHECK_IDENTIFER_KEYWORD

描述:对象名是否可以使用关键字

默认值:false

可选值:true/false

1.6. CHECK_TABLE_CHARSET

描述:是否检查表的字符集和排序规则

默认值:true

可选值:true/false

1.7. TABLE_SUPPORT_CHARSET

描述:表支持的字符集

默认值:[{"charset": "utf8", "recommend": "utf8_general_ci"}, {"charset": "utf8mb4", "recommend": "utf8mb4_general_ci"}]

可选值:DB支持的字符集

例子:

default character set utf8mb4 collate utf8mb4_general_ci

1.8. CHECK_TABLE_ENGINE

描述:是否检查表的存储引擎

默认值:true

可选值:true/false

1.9. TABLE_SUPPORT_ENGINE

描述:表支持的存储引擎

默认值:["InnoDB"]

可选值:DB支持的存储引擎

例子:

ENGINE=InnoDB

1.10. ENABLE_PARTITION_TABLE

描述:是否启用分区表

默认值:false

可选值:true/false

1.11. CHECK_TABLE_PRIMARY_KEY

描述:检查表是否有主键

默认值:true

可选值:true/false

1.12. TABLE_AT_LEAST_ONE_COLUMN

描述:表至少要有一列,语法默认支持,调整参数无效

默认值:true

可选值:true/false

1.13. CHECK_TABLE_AUDIT_TYPE_COLUMNS

描述:是否启用审计类型的字段检查,不检查字段名,仅检测字段定义是否符合要求,审计字段一般为创建时间/更新时间字段。

默认值: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 '更新时间'

1.14. ENABLE_CREATE_TABLE_AS

描述:是否允许create table as语法

默认值:false

可选值:true/false

1.15. ENABLE_CREATE_TABLE_LIKE

描述:是否允许create table like语法

默认值:false

可选值:true/false

1.16. ENABLE_FOREIGN_KEY

描述:是否启用外键

默认值:false

可选值:true/false

1.17. CHECK_TABLE_AUTOINCREMENT_INIT_VALUE

描述:检查建表是自增列初始值是否为1

默认值:true

可选值:true/false

1.18. ENABLE_CREATE_VIEW

描述:是否支持创建和使用视图

默认值:true

可选值:true/false

1.19. MAX_COLUMN_NAME_LENGTH

描述:列名的长度

默认值:32

可选值:1~64

1.20. CHECK_COLUMN_CHARSET

描述:是否检查列的字符集

默认值:true

可选值:true/false

1.21. CHECK_COLUMN_COMMENT

描述:是否检查列的注释

默认值:true

可选值:true/false

1.22. COLUMN_MAX_CHAR_LENGTH

描述:char长度大于N的时候需要改为varchar

默认值:64

可选值:1~254

1.23. MAX_VARCHAR_LENGTH

描述:最大允许定义的varchar长度

默认值:65534

可选值:1~65534

1.24. ENABLE_COLUMN_BLOB_TYPE

描述:是否允许列的类型为BLOB/TEXT

默认值:true

可选值:true/false

1.25. ENABLE_COLUMN_JSON_TYPE

是否允许列的类型为JSON

默认值:true

可选值:true/false

1.26. ENABLE_COLUMN_BIT_TYPE

描述:是否允许列的类型为BIT

默认值:true

可选值:true/false

1.27. ENABLE_COLUMN_TIMESTAMP_TYPE

描述:是否允许列的类型为TIMESTAMP

默认值:false

可选值:true/false

1.28. CHECK_PRIMARYKEY_USE_BIGINT

描述:主键是否为bigint

默认值:true

可选值:true/false

1.29. CHECK_PRIMARYKEY_USE_UNSIGNED

描述:主键bigint是否为unsigned

默认值:true

可选值:true/false

1.30. CHECK_PRIMARYKEY_USE_AUTO_INCREMENT

描述:主键是否定义为自增

默认值:true

可选值:true/false

1.31. ENABLE_COLUMN_NOT_NULL

描述:列是否定义为NOT NULL

默认值:true

可选值:true/false

1.32. ENABLE_COLUMN_TIME_NULL

描述:是否允许时间类型定义为NULL

默认值:true

可选值:true/false

1.33. CHECK_COLUMN_DEFAULT_VALUE

描述:列必须要有默认值

默认值:true

可选值:true/false

1.34. CHECK_COLUMN_FLOAT_DOUBLE

描述:将float/double转成int/bigint/decimal等

默认值:true

可选值:true/false

1.35. ENABLE_COLUMN_TYPE_CHANGE

描述:是否允许变更列类型

默认值:false

可选值:true/false

1.36. ENABLE_COLUMN_CHANGE_COLUMN_NAME

描述:是否允许CHANGE列名操作

默认值:false

可选值:true/false

1.37. ENABLE_COLUMN_TYPE_CHANGE_COMPATIBLE

描述:是否开启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

1.38. CHECK_UNIQ_INDEX_PREFIX

描述:是否检查唯一索引前缀,如唯一索引必须以uniq_为前缀

默认值:true

可选值:true/false

1.39. CHECK_SECONDARY_INDEX_PREFIX

描述:是否检查二级索引前缀,如普通索引必须以idx_为前缀

默认值:true

可选值:true/false

1.40. CHECK_FULLTEXT_INDEX_PREFIX

描述:是否检查全文索引前缀,如全文索引必须以full_为前缀

默认值:true

可选值:true/false

1.41. UNQI_INDEX_PREFIX

描述:定义唯一索引前缀,不区分大小写

默认值:UNIQ_

1.42. SECONDARY_INDEX_PREFIX

描述:定义二级索引前缀,不区分大小写

默认值:IDX_

1.43. FULLTEXT_INDEX_PREFIX

描述:定义全文索引前缀,不区分大小写

默认值:FULL_

1.44. SECONDARY_INDEX_MAX_KEY_PARTS

描述:组成二级索引的列数不能超过指定的个数,包括唯一索引

默认值:8

1.45. PRIMARYKEY_MAX_KEY_PARTS

描述:组成主键索引的列数不能超过指定的个数

默认值:1

1.46. MAX_INDEX_KEYS

描述:最多有N个索引,包括唯一索引/二级索引

默认值:12

1.47. ENABLE_INDEX_RENAME

描述:是否允许rename索引名

默认值:false

可选值:true/false

1.48. ENABLE_DROP_COLS

描述:是否允许DROP列

默认值:true

可选值:true/false

1.49. ENABLE_DROP_INDEXES

描述:是否允许DROP索引

默认值:true

可选值:true/false

1.50. ENABLE_DROP_PRIMARYKEY

描述:是否允许DROP主键

默认值:false

可选值:true/false

1.51. ENABLE_DROP_TABLE

描述:是否允许DROP TABLE

默认值:true

可选值:true/false

1.52. ENABLE_TRUNCATE_TABLE

描述:是否允许TRUNCATE TABLE

默认值:true

可选值:true/false

1.53. ENABLE_RENAME_TABLE_NAME

描述:是否允许rename表名

默认值:false

可选值:true/false

1.54. ENABLE_MYSQL_MERGE_ALTER_TABLE

描述:MySQL同一个表的多个ALTER是否合并为单条语句

默认值:true

可选值:true/false

1.55. ENABLE_TIDB_MERGE_ALTER_TABLE

描述:TiDB同一个表的多个ALTER是否合并为单条语句

默认值:false

可选值:true/false

1.56. DML_MUST_HAVE_WHERE

描述:DML语句必须有where条件

默认值:true

可选值:true/false

1.57. DML_DISABLE_LIMIT

描述:DML语句中不允许有LIMIT

默认值:true

可选值:true/false

1.58. DML_DISABLE_ORDERBY

描述:DML语句中不允许有orderby

默认值:true

可选值:true/false

1.59. DML_DISABLE_SUBQUERY

描述:DML语句不能有子查询

默认值:true

可选值:true/false

1.60. CHECK_DML_JOIN_WITH_ON

描述:DML的JOIN语句必须有ON语句

默认值:true

可选值:true/false

1.61. EXPLAIN_RULE

描述:explain判断受影响行数时使用的规则("first", "max")。 "first": 使用第一行的explain结果作为受影响行数, "max": 使用explain结果中的最大值作为受影响行数

默认值:first

可选值:first/max

1.62. MAX_AFFECTED_ROWS

描述:最大影响行数,默认100

默认值:100

1.63. MAX_INSERT_ROWS

描述:一次最多允许insert的行, eg: insert into tbl(col,...) values(row1), (row2)...

默认值:100

1.64. DISABLE_REPLACE

描述:是否禁用replace语句

默认值:true

可选值:true/false

1.65. DISABLE_INSERT_INTO_SELECT

描述:是否禁用insert/replace into select语法

默认值:true

可选值:true/false

1.66. DISABLE_ON_DUPLICATE

描述:是否禁止insert on duplicate语法

默认值:true

可选值:true/false

1.67. DISABLE_AUDIT_DML_TABLES

适用场景:多个库直接数据同步的主备表

描述:禁止对指定的表进行DML审核

默认值:空

配置例子:

"DISABLE_AUDIT_DML_TABLES": [
    {
        "DB": "test",
        "Tables": [
            "t1",
            "t2"
        ],
        "Reason": "xxx业务研发禁止审核和提交,请联系xxx"
    }
]

1.68. DISABLE_AUDIT_DDL_TABLES

适用场景:多个库直接数据同步的主备表

描述:禁止对指定的表进行DDL审核

默认值:空

配置例子:

"DISABLE_AUDIT_DDL_TABLES": [
    {
        "DB": "test",
        "Tables": [
            "t1"
        ],
        "Reason": "xxx业务研发禁止审核和提交,请联系xxx"
    },
    {
        "DB": "test1",
        "Tables": [
            "c1",
            "c2"
        ],
        "Reason": "xxx业务研发禁止审核和提交,请联系xxx"
    }
]
Clone this wiki locally