增加字符集和排序规则的限制
Database Type
Rule Description
Why
增加规则: create/alter 表或字段时允许的Collate范围。多个请使用逗号进行分割 create/alter 表或字段时允许的Charset范围。多个请使用逗号进行分割
why: SQLE 必须使用指定数据库字符集 规则强制所有DDL SQL都必须使用字符集,增加书写难度。
参照yearning 审核规则: 希望实现:
- ddl sql 如果带有字符集和排序规则,只能用到相关配置值。
- ddl sql也可以不强制带字符集和排序规则。
附件是yearning相关规则及测试。
Database Type: MySQL
能举个实际的使用场景吗?
是指一个项目里可以混用多个字符集和排序规则吗
能举个实际的使用场景吗?
- DDL可以不指定字符集和排序规则,默认以database级别为准
- DDL如果要指定字符集和排序规则,只能指定审核规则中配置的字符集和排序规则
是指一个项目里可以混用多个字符集和排序规则吗
不是混用。 SQLE目前的审核规则 必须使用指定数据库字符集 开启后所有的DDL语句都要指定字符集。
è½ä¸¾ä¸ªå®é ç使ç¨åºæ¯åï¼
å¦é
ç½®xxxè§å å符éåªè½æå®utf8mb4
å®¡æ ¸éè¿åºæ¯ï¼
create:
CREATE TABLE IF NOT EXISTS test1
(
id bigint(20) NOT NULL COMMENT 'Primary key',
a_code varchar(512) DEFAULT NULL COMMENT 'The unique code of the file',
PRIMARY KEY (id) USING BTREE
);
CREATE TABLE IF NOT EXISTS test1
(
id bigint(20) NOT NULL COMMENT 'Primary key',
a_code varchar(512) DEFAULT NULL COMMENT 'The unique code of the file',
PRIMARY KEY (id) USING BTREE
) DEFAULT CHARSET=utf8mb4;
alterï¼ alter table test1 add col_b varchar(50) NOT NULL COMMENT 'col_b'; alter table test1 add col_b varchar(50) CHARACTER SET utf8mb4 NOT NULL COMMENT 'col_b';
å®¡æ ¸ä¸éè¿åºæ¯ï¼
create:
CREATE TABLE IF NOT EXISTS test1
(
id bigint(20) NOT NULL COMMENT 'Primary key',
a_code varchar(512) DEFAULT NULL COMMENT 'The unique code of the file',
PRIMARY KEY (id) USING BTREE
) DEFAULT CHARSET=utf8;
alter: alter table test1 add col_b varchar(50) CHARACTER SET utf8 NOT NULL COMMENT 'col_b';