云数据库 GAUSSDB(FOR MYSQL)-不支持同步的DDL
不支持同步的DDL
- 在创建的同步库中,支持同步表及数据,不支持同步数据库,表空间,索引,外键,函数,存储过程,触发器,视图,分区(删除),主键(增加/删除/修改),事务,用户,角色,权限,事件等对象的操作。
- 建表语句不能包含CHECK,表选项等。
- 在数据同步过程中,表3中的操作会导致HTAP中数据和GaussDB(for MySQL) 中数据不一致,应尽量避免使用。
DDL名称 |
SQL样例 |
---|---|
添加索引 |
ALTER TABLE tbl_name ADD INDEX name; |
重命名索引 |
ALTER TABLE tbl_name RENAME INDEX old_index_name TO new_index_name; |
删除索引 |
DROP INDEX name ON table; |
增加全文索引 |
CREATE FULLTEXT INDEX name ON table(column); |
增加空间索引 |
ALTER TABLE geom ADD SPATIAL INDEX(g); |
修改索引类型 |
ALTER TABLE tbl_name DROP INDEX i1, ADD INDEX i1(key_part,...) USING BTREE; |
添加索引约束 |
ALTER TABLE tbl_name ADD CONSTRAINT UNIQUE USING BTREE (column); ALTER TABLE tbl_name ADD CONSTRAINT UNIQUE USING HASH(column); |
DDL名称 |
SQL样例 |
---|---|
分析表分区 |
ALTER TABLE {db}.tp ANALYZE PARTITION p0; |
检查表分区 |
ALTER TABLE {db}.tp CHECK PARTITION p0; |
优化表分区 |
ALTER TABLE {db}.tp OPTIMIZE PARTITION p0; |
重建表分区 |
ALTER TABLE {db}.tp REBUILD PARTITION p0; |
修复表分区 |
ALTER TABLE {db}.tp REPAIR PARTITION p0; |
创建数据库 |
CREATE DATABASE ddl_test_2; |
修改行格式 |
ALTER TABLE tbl_name ROW_FORMAT = row_format; |
设置持久表统计信息 |
ALTER TABLE tbl_name STATS_PERSISTENT=0, STATS_SAMPLE_PAGES=20,STATS_AUTO_RECALC=1, ALGORITHM=INPLACE, LOCK=NONE; |
设置表的字符集 |
ALTER TABLE tbl_name CHARACTER SET = charset_name; |
转换表的字符集 |
ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name; |
优化表 |
OPTIMIZE TABLE tbl_name; |
使用“强制”选项重建表 |
ALTER TABLE tbl_name FORCE; |
执行空重建 |
ALTER TABLE tbl_name ENGINE=InnoDB; |
重命名表空间 |
ALTER TABLESPACE tablespace_name RENAME TO new_tablespace_name; |
增加表分区 |
ALTER TABLE {db}.tp ADD PARTITION (PARTITION p3 VALUES LESS THAN (2006) ); |
指定排序规则 |
ALTER TABLE tbl_name DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci; |
DDL名称 |
SQL样例 |
---|---|
删除主键 |
ALTER TABLE tbl_name DROP PRIMARY KEY; |
增加主键 |
ALTER TABLE {db}.t1 ADD PRIMARY KEY (id); |
增加删除主键 |
ALTER TABLE tbl_name DROP PRIMARY KEY, ADD PRIMARY KEY (column); |
主键允许为NULL |
ALTER TABLE tbl_name MODIFY COLUMN key_column_name data_type; |
修改主键类型 |
ALTER TABLE tbl_name MODIFY COLUMN key_column_name data_type not null; |
增加外键 |
ALTER TABLE tbl1 ADD CONSTRAINT fk_name FOREIGN KEY index (col1)REFERENCES tbl2(col2) referential_actions; |
删除外键 |
ALTER TABLE tbl DROP FOREIGN KEY fk_name; |
增加列
说明:
支持一般的列增加,但不支持缺省值为如下取值的场景:
|
ALTER TABLE tbl_name ADD COLUMN column_name column_definition c VARCHAR(10) DEFAULT (CONCAT('1', '2')); |
设置列的缺省值
说明:
支持缺省值的设置,但不支持缺省值为如下取值的场景:
|
ALTER TABLE tbl_name ALTER COLUMN col SET DEFAULT literal; |
修改列不允许为NULL |
ALTER TABLE tbl_name MODIFY COLUMN column_name data_type NOT NULL; |
同时修改列名和类型 |
ALTER TABLE t1 CHANGE b b1 VARCHAR(100); |
创建无主键的表 |
ALTER TABLE t1 ADD COLUMN (c2 INT GENERATED ALWAYS AS (c1 + 1)STORED); |
增加存储型衍生列 |
ALTER TABLE {db}.t1 ADD COLUMN (st2 INT GENERATED ALWAYS AS (c2 + 2)STORED), ALGORITHM=COPY; |
增加虚拟型衍生列 |
ALTER TABLE t1 ADD COLUMN (c2 INT GENERATED ALWAYS AS (c1 + 1)VIRTUAL); |
删除表分区 |
ALTER TABLE {db}.tp DROP PARTITION p4; |
丢弃表分区 |
ALTER TABLE {db}.tp DISCARD PARTITION p2 TABLESPACE; |
导入表分区 |
ALTER TABLE {db}.tp IMPORT PARTITION p2 TABLESPACE; |
截断表分区 |
ALTER TABLE {db}.tp TRUNCATE PARTITION p2; |
截断分区表 |
TRUNCATE {db}.tp; |
联合表分区 |
ALTER TABLE {db}.tp_hash COALESCE PARTITION 2; |
重新组织表分区 |
ALTER TABLE {db}.tp REORGANIZE PARTITION p0,p1,p2,p3 INTO ( ... ); |
交换表分区 |
ALTER TABLE {db}.tp EXCHANGE PARTITION p0 WITH TABLE {db}.tp2; |
删除表分区 |
ALTER TABLE {db}.tp REMOVE PARTITIONING; |
使用REPLACE子句 |
CREATE OR REPLACE TABLE; |
- 云数据库GaussDB(for MySQL)_兼容MySQL
- 云数据库 GaussDB(for MySQL)与RDS for MySQL的区别
- 华为云数据库 RDS for MySQL常见故障排除_华为云
- 云数据库RDS for MySQL版本升级_MySQL版本_升级数据库版本
- 云数据库 RDS for MySQL版本升级_MySQL如何进行版本升级_华为云
- GaussDB变更_云数据库GaussDB变更_高斯数据库变更-华为云
- 数据库和应用迁移UGO_数据库迁移上云_云数据库
- 免费的MySQL数据库_免费云数据库_MySQL数据库基础知识_MySQL数据库免费下载
- 云数据库RDS for MySQL数据备份_备份策略_自动备份_手动备份
- 云数据库 GaussDB(for MySQL)与华为云其他服务的关系