跳到主要内容

6. 字符集/排序

表定义时禁止使用字符集

英文名: CharsetOnTableDisallowed

规则描述: 禁止在表定义时指定字符集,以避免字符集不一致导致的数据问题。

预警级别: 警告 (Warning)

审查对象: CREATE TABLE

触发条件: 创建表时指定了字符集。

可配置:

支持的数据库类型: 所有 (ALL)

表应使用指定的字符集

英文名: SpecificCharSet4TableRequired

规则描述: 要求表必须使用指定的字符集,如UTF-8,以确保数据的一致性和国际化支持。

预警级别: 警告 (Warning)

审查对象: CREATE TABLE

触发条件: 表未使用指定的字符集。

可配置:

案例: 表达式可以配置为 utf8mb4(mysql) utf8(pg),表示MySQL和PostgreSQL表应当使用UTF-8编码。

支持的数据库类型: MySQL, PostgreSQL

表应使用指定的排序规则

英文名: SpecificCollation4TableRequired

规则描述: 要求表必须使用指定的排序规则,以确保数据的比较和排序行为符合预期。

预警级别: 警告 (Warning)

审查对象: CREATE TABLE

触发条件: 表未使用指定的排序规则。

可配置:

案例: 表达式可以配置为 utf8mb4_0900_ai_ci,表示表应当使用UTF-8编码和不区分大小写的排序规则。

支持的数据库类型: MySQL

表和数据库的字符集不一致

英文名: CharsetsOnTable&DatabaseMismatch

规则描述: 要求表的字符集必须与数据库的字符集一致,以避免数据一致性问题。

预警级别: 警告 (Warning)

审查对象: CREATE TABLE

触发条件: 表的字符集与数据库的字符集不一致。

可配置:

支持的数据库类型: 所有 (ALL)

禁止指定列的字符集

英文名: CharsetOnColumnDisallowed

规则描述: 禁止为列单独指定字符集,以避免字符集不一致导致的数据问题。

预警级别: 警告 (Warning)

审查对象: CREATE TABLE, ALTER TABLE MODIFY COLUMN

触发条件: 列被单独指定了字符集。

可配置:

支持的数据库类型: 所有 (ALL)

列的字符集和表不一致

英文名: CharsetsOnColumn&TableMismatch

规则描述: 要求列的字符集必须与表的字符集一致,以确保数据的一致性。

预警级别: 警告 (Warning)

审查对象: CREATE TABLE, ALTER TABLE MODIFY COLUMN

触发条件: 列的字符集与表的字符集不一致。

可配置:

支持的数据库类型: 所有 (ALL)

创建库必须指定数据库字符集

英文名: Charset4DatabaseRequired

规则描述: 要求在创建数据库时必须指定字符集,以确保数据的一致性和兼容性。

预警级别: 警告 (Warning)

审查对象: CREATE DATABASE

触发条件: 创建数据库时未指定字符集。

可配置:

支持的数据库类型: 所有 (ALL)

数据库需指定默认排序规则(Collate)

英文名: Collation4DatabaseRequired

规则描述: 要求在创建数据库时指定默认的排序规则(collate),以确保数据的比较和排序行为符合预期。

预警级别: 警告 (Warning)

审查对象: CREATE DATABASE

触发条件: 创建数据库时未指定默认排序规则。

可配置:

支持的数据库类型: 所有 (ALL)

创建库或模式时必须使用指定字符集

英文名: SpecificCharset4DatabaseRequired

规则描述: 要求在创建数据库或模式时使用指定的字符集,以确保数据的一致性和兼容性。

预警级别: 警告 (Warning)

审查对象: CREATE DATABASE, CREATE SCHEMA

触发条件: 创建数据库或模式时未使用指定的字符集。

可配置:

案例: 表达式可以配置为 utf8mb4,表示创建数据库或模式时应使用UTF-8编码。

支持的数据库类型: 所有 (ALL)

创建库或模式时使用规定的排序规则

英文名: SpecificCollation4DatabaseRequired

规则描述: 要求在创建数据库或模式时使用规定的排序规则,以确保数据的比较和排序行为符合预期。

预警级别: 严重 (Critical)

审查对象: CREATE DATABASE, CREATE SCHEMA

触发条件: 创建数据库或模式时未使用规定的排序规则。

可配置:

案例: 表达式可以配置为 utf8mb4_0900_ai_ci,表示创建数据库或模式时应使用UTF-8编码和不区分大小写的排序规则。

支持的数据库类型: 所有 (ALL)