-
Notifications
You must be signed in to change notification settings - Fork 205
Syntax Inspect Rules
zongfei.fu edited this page Mar 13, 2024
·
1 revision
关键字 | 检查项 |
---|---|
N/A | 检查表是否存在 |
enable_create_table_as | 是否允许使用允许使用create table as语法 |
enable_create_table_like | 是否允许使用create table like语法 |
ENABLE_CREATE_VIEW | 是否允许创建视图 |
MAX_TABLE_NAME_LENGTH | 检查表名的长度 |
CHECK_IDENTIFIER | [a-zA-Z0-9_] 是否启用表名合法性检查 |
CHECK_IDENTIFER_KEYWORD | 对象名是否可以使用关键字 |
CHECK_TABLE_ENGINE | 是否启用存储引擎检查 |
TABLE_SUPPORT_ENGINE | 支持定义有效的存储引擎,如InnoDB/MyISAM/NDB等 |
ENABLE_PARTITION_TABLE | 是否支持分区表 |
CHECK_TABLE_COMMENT | 检查表是否有注释 |
TABLE_COMMENT_LENGTH | 检查表的注释长度,防止溢出 |
CHECK_TABLE_CHARSET | 是否启用字符集和排序规则检查 |
TABLE_SUPPORT_CHARSET | 是否支持分区表 |
CHECK_TABLE_AUTOINCREMENT_INIT_VALUE | 检查建表时自增列初始值是否为1 |
TABLE_AT_LEAST_ONE_COLUMN | 表至少要有一列,语法默认支持 |
ENABLE_DROP_COLS | 是否允许DROP列 |
N/A | 检查drop的列是否存在 |
ENABLE_DROP_PRIMARYKEY | 是否允许DROP主键 |
ENABLE_COLUMN_TYPE_CHANGE | 是否允许变更数据类型 |
ENABLE_COLUMN_CHANGE_COLUMN_NAME | 是否禁止CHANGE操作 |
ENABLE_COLUMN_TYPE_CHANGE_COMPATIBLE | 是否开启change列类型兼容模式 |
ENABLE_INDEX_RENAME | 是否允许RENAME INDEX操作 |
ENABLE_RENAME_TABLE_NAME | 是否允许RENAME表名 |
ENABLE_DROP_TABLE | 是否允许DROP表 |
ENABLE_TRUNCATE_TABLE | 是否允许TRUNCATE表 |
I_ID bigint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '自增ID'
关键字 | 检查项 |
---|---|
CHECK_TABLE_PRIMARY_KEY | 表是否有主键 |
CHECK_TABLE_PRIMARY_KEY | 表只能定义一个主键 |
CHECK_PRIMARYKEY_USE_BIGINT | 主键必须为bigint |
CHECK_PRIMARYKEY_USE_UNSIGNED | 主键bigint必须为unsigned |
CHECK_PRIMARYKEY_USE_AUTO_INCREMENT | 主键必须定义为自增 |
N/A | 主键必须定义NOT NULL |
关键字 | 备注 |
---|---|
ENABLE_FOREIGN_KEY | 是否启用外键 |
CREATED_AT datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
UPDATED_AT datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
关键字 | 备注 |
---|---|
CHECK_TABLE_AUDIT_TYPE_COLUMNS | 是否启用审计类型的字段检查,不检查字段名,仅检测字段定义是否符合要求 |
关键字 | 备注 |
---|---|
MAX_COLUMN_NAME_LENGTH | 列名的长度 |
CHECK_IDENTIFIER | [a-zA-Z0-9_] 是否启用列名合法性检查 |
CHECK_IDENTIFER_KEYWORD | 对象名是否可以使用关键字 |
CHECK_COLUMN_COMMENT | 列是否有注释 |
COLUMN_MAX_CHAR_LENGTH | char长度大于N的时候需要改为varchar |
MAX_VARCHAR_LENGTH | 最大允许定义的varchar长度 |
CHECK_COLUMN_FLOAT_DOUBLE | 将float/double建议转成int/bigint/decimal等 |
ENABLE_COLUMN_BLOB_TYPE | 是否允许列的类型为BLOB/TEXT |
ENABLE_COLUMN_JSON_TYPE | 是否允许列的类型为JSON |
ENABLE_COLUMN_TIMESTAMP_TYPE | 是否允许列的类型为TIMESTAMP |
ENABLE_COLUMN_NOT_NULL | 列是否定义为NOT NULL |
N/A | TEXT/BLOB/JSON类型允许为NULL |
ENABLE_COLUMN_TIME_NULL | datetime/timestamp是否允许为NULL |
CHECK_COLUMN_DEFAULT_VALUE | 列必须要有默认值 |
N/A | 不能定义NOT NULL DEFAULT NULL
|
N/A | BLOB,TEXT,GEOMETRY,JSON类型不能设置默认值 |
N/A | 检查默认值(有默认值、且不为NULL)和数据类型是否匹配;默认值是否有效,如不为datetime和timestamp类型的字段配置了default current_timestamp
|
CHECK_COLUMN_CHARSET | 是否启用列的字符集检查; 列必须同时指定字符集和排序规则; 列的排序规则的前缀必须为字符集名; mysql仅支持对char/varchar/enum/set指定字符集 |
N/A | 列重复定义检查 |
关键字 | 备注 |
---|---|
CHECK_IDENTIFIER | a-zA-Z0-9_] 是否启用索引名合法性检查 |
N/A | 索引名不能为空 |
CHECK_UNIQ_INDEX_PREFIX | 是否启用唯一索引前缀检查 |
UNQI_INDEX_PREFIX | 唯一索引前缀检查 |
CHECK_SECONDARY_INDEX_PREFIX | 是否启用二级索引前缀检查 |
SECONDARY_INDEX_PREFIX | 二级索引前缀检查 |
CHECK_FULLTEXT_INDEX_PREFIX | 是否启用全文索引前缀检查 |
FULLTEXT_INDEX_PREFIX | 全文索引前缀检查 |
MAX_INDEX_KEYS | 检查二级索引的数量,包括唯一索引 |
PRIMARYKEY_MAX_KEY_PARTS | 检查主键数量 |
N/A | 检查是否重复定义了索引 |
N/A | 创建索引时,指定的列必须存在 |
N/A | 创建索引时,索引中的列不能重复 |
N/A | 创建索引时,索引名不能重复 |
N/A | 不能有重复的索引,即索引名不同,字段相同;冗余索引,如(a),(a,b) |
N/A | 查找重复的索引,即索引名不一样,但是定义的列一样,不区分大小写 |
N/A | 查找冗余的索引,即索引名不一样,但是定义的列冗余,不区分大小写 |
N/A | BLOB/TEXT类型不能设置为索引 |
N/A | IndexLargePrefix检查,自适应DB版本和参数设置(innodb-large-prefix) |
ENABLE_DROP_INDEXES | 是否允许DROP索引 |
N/A | 检查drop的索引是否存在 |
关键字 | 备注 |
---|---|
DISABLE_INSERT_INTO_SELECT | 是否禁止使用insert/replace into select语法 |
DISABLE_ON_DUPLICATE | 是否禁止使用insert into on duplicate语法 |
DML_MUST_HAVE_WHERE | DML语句必须要有where条件 |
DISABLE_REPLACE | 是否允许使用replace语句 |
N/A | insert/replace语句必须指定列名 |
MAX_INSERT_ROWS | INSERT语句单次最多允许插入的行数 |
DML_DISABLE_LIMIT | delete/update语句是否能有LIMIT子句 |
DML_DISABLE_ORDERBY | delete/update语句是否能有orderby子句 |
DML_DISABLE_SUBQUERY | delete/update语句是否能有子查询 |
CHECK_DML_JOIN_WITH_ON | delete/update语句的JOIN操作是否要有ON条件 |
MAX_AFFECTED_ROWS | DML语句执行计划最大影响行数 |