表(可选参数)
本节主要介绍表(可选参数)的迁移语法。迁移语法决定了关键字/功能的迁移方式。GaussDB(DWS)不支持表(可选参数),目前针对表(可选参数)的迁移方法都是临时迁移方法。
AUTO_INCREMENT
在数据库应用中,我们经常需要用到自动递增的唯一编号来标识记录。在MySQL中,可通过数据列的auto_increment属性来自动生成。可在建表时可用“auto_increment=n”选项来指定一个自增的初始值。可用“alter table table_name auto_increment=n”命令来重设自增的起始值。GaussDB(DWS)不支持该参数,DSC迁移时会将设置该属性的字段迁移为SERIAL类型,并删除该关键字。
输入示例
CREATE TABLE `public`.`job_instance` ( `job_sche_id` int(11) NOT NULL AUTO_INCREMENT, `task_name` varchar(100) NOT NULL DEFAULT '', PRIMARY KEY (`job_sche_id`) ) ENGINE=InnoDB AUTO_INCREMENT=219 DEFAULT CHARSET=utf8;
输出示例
CREATE TABLE "public"."job_instance" ( "job_sche_id" SERIAL NOT NULL, "task_name" VARCHAR(100) NOT NULL DEFAULT '', PRIMARY KEY ("job_sche_id") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("job_sche_id");
此外,GaussDB(DWS)也不支持基于AUTO_INCREMENT属性修改表定义信息。DSC迁移时会将其移除。
输入示例
CREATE TABLE IF NOT EXISTS `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` FLOAT(10,2), PRIMARY KEY(`dataType1`) ); ALTER TABLE runoob_alter_test AUTO_INCREMENT 100; ALTER TABLE runoob_alter_test AUTO_INCREMENT=100;
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(10), PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1");
AVG_ROW_LENGTH
输入示例
CREATE TABLE `public`.`runoob_tbl_test`( `runoob_id` VARCHAR(30), `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submission_date` VARCHAR(30) )AVG_ROW_LENGTH=10000;
输出示例
CREATE TABLE "public"."runoob_tbl_test" ( "runoob_id" VARCHAR(30), "runoob_title" VARCHAR(100) NOT NULL, "runoob_author" VARCHAR(40) NOT NULL, "submission_date" VARCHAR(30) ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("runoob_id");
此外,GaussDB(DWS)不支持使用 “ AUTO_INCREMENT”属性修改表,DSC在迁移后会直接删除该属性。
输入示例
CREATE TABLE IF NOT EXISTS `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` FLOAT(10,2), PRIMARY KEY(`dataType1`) ); ALTER TABLE runoob_alter_test AUTO_INCREMENT 100; ALTER TABLE runoob_alter_test AUTO_INCREMENT=100;
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(10), PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1");
CHARSET
CHARSET指定表的默认字符集。GaussDB(DWS)不支持该属性修改表定义信息,DSC迁移时会将该关键字删除。
输入示例
CREATE TABLE `public`.`runoob_tbl_test`( `runoob_id` VARCHAR(30), `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submission_date` VARCHAR(30) )DEFAULT CHARSET=utf8;
输出示例
CREATE TABLE "public"."runoob_tbl_test" ( "runoob_id" VARCHAR(30), "runoob_title" VARCHAR(100) NOT NULL, "runoob_author" VARCHAR(40) NOT NULL, "submission_date" VARCHAR(30) ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("runoob_id");
CHECKSUM
在MySQL中,CHECKSUM表示对所有的行维护实时校验和。GaussDB(DWS)不支持该属性修改表定义信息,DSC迁移时会将该关键字删除。
输入示例
CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` FLOAT(10,2), `dataType3` DOUBLE(20,8), PRIMARY KEY(`dataType1`) ) CHECKSUM=1; ALTER TABLE runoob_alter_test CHECKSUM 0; ALTER TABLE runoob_alter_test CHECKSUM=0; ALTER TABLE runoob_alter_test CHECKSUM 1; ALTER TABLE runoob_alter_test CHECKSUM=1;
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(10), "datatype3" FLOAT(20), PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1");
COLLATE
在MySQL中,COLLATE表示默认的数据库排序规则。GaussDB(DWS)不支持该属性修改表定义信息,DSC迁移时会将该关键字删除。
输入示例
CREATE TABLE `public`.`runoob_tbl_test`( `runoob_id` VARCHAR(30), `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submission_date` VARCHAR(30) ) COLLATE=utf8_general_ci; ALTER TABLE `public`.`runoob_tbl_test` COLLATE=utf8mb4_bin;
输出示例
CREATE TABLE "public"."runoob_tbl_test" ( "runoob_id" VARCHAR(30), "runoob_title" VARCHAR(100) NOT NULL, "runoob_author" VARCHAR(40) NOT NULL, "submission_date" VARCHAR(30) ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("runoob_id");
COMMENT
在MySQL中,COMMENT对表进行注释。GaussDB(DWS)不支持该属性修改表定义信息,DSC在迁移的过程中会将该属性删除。
输入示例
CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` FLOAT(10,2), PRIMARY KEY(`dataType1`) ) comment='表的注释'; ALTER TABLE `public`.`runoob_alter_test` COMMENT '修改后的表的注释';
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(10), PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1");
CONNECTION
GaussDB(DWS)不支持该属性修改表定义信息,DSC迁移时会将该属性删除。
CONNECTION关键字在MySQL中用作引用外部数据源。工具暂不支持该特性的完整迁移。基于当前的临时方案,工具仅仅移除该关键字。
输入示例
CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), `dataType3` TEXT NOT NULL, `dataType4` YEAR NOT NULL DEFAULT '2018', PRIMARY KEY(`dataType1`) ); ALTER TABLE runoob_alter_test CONNECTION 'hello'; ALTER TABLE runoob_alter_test CONNECTION='hello';
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(20), "datatype3" TEXT NOT NULL, "datatype4" VARCHAR(4) NOT NULL DEFAULT '2018', PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1");
DELAY_KEY_WRITE
DELAY_KEY_WRITE只对MyISAM引擎表有作用,根据DELAY_KEY_WRITE的值来延迟更新直至表关闭。GaussDB(DWS)不支持该属性修改表定义信息,DSC迁移时会将该属性删除。
输入示例
CREATE TABLE `public`.`runoob_tbl_test`( `runoob_id` VARCHAR(30), `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submission_date` VARCHAR(30) ) ENGINE=MyISAM, DELAY_KEY_WRITE=0; ALTER TABLE `public`.`runoob_tbl_test6` DELAY_KEY_WRITE=1;
输出示例
CREATE TABLE "public"."runoob_tbl_test" ( "runoob_id" VARCHAR(30), "runoob_title" VARCHAR(100) NOT NULL, "runoob_author" VARCHAR(40) NOT NULL, "submission_date" VARCHAR(30) ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("runoob_id");
DIRECTORY
DIRECTORY表示允许在数据目录和索引目录之外创建表空间。DIRECTORY包含DATA DIRECTORY和INDEX DIRECTORY。GaussDB(DWS)不支持该属性修改表定义信息,DSC迁移时会将该属性删除。
输入示例
CREATE TABLE `public`.`runoob_tbl_test1` ( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), PRIMARY KEY(`dataType1`) ) ENGINE=MYISAM DATA DIRECTORY = 'D:\\input' INDEX DIRECTORY= 'D:\\input'; CREATE TABLE `public`.`runoob_tbl_test2` ( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), PRIMARY KEY(`dataType1`) ) ENGINE=INNODB DATA DIRECTORY = 'D:\\input';
输出示例
CREATE TABLE "public"."runoob_tbl_test1" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(20), PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); CREATE TABLE "public"."runoob_tbl_test2" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(20), PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1");
ENGINE
在MySQL中,ENGINE指定表的存储引擎。当存储引擎为ARCHIVE、BLACKHOLE、CSV、FEDERATED、INNODB、MYISAM、MEMORY、MRG_MYISAM、NDB、NDBCLUSTER和PERFOMANCE_SCHEMA时,DSC支持该属性迁移,迁移过程中会将该属性删除。
输入示例
CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL, `dataType2` DOUBLE(20,8), PRIMARY KEY(`dataType1`) )ENGINE=MYISAM; ## A. ALTER TABLE runoob_alter_test ENGINE INNODB; ALTER TABLE runoob_alter_test ENGINE=INNODB; ## B. ALTER TABLE runoob_alter_test ENGINE MYISAM; ALTER TABLE runoob_alter_test ENGINE=MYISAM; ## C. ALTER TABLE runoob_alter_test ENGINE MEMORY; ALTER TABLE runoob_alter_test ENGINE=MEMORY;
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "datatype1" INTEGER NOT NULL, "datatype2" FLOAT(20), PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); -- A. -- B. -- C.
INSERT_METHOD
INSERT_METHOD指定在表中插入行的位置,使用FIRST或LAST值将插入转到第一个或最后一个表,或使用值NO以防止插入。在迁移的过程中DSC会将该属性删除。
输入示例
CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), `dataType3` TEXT NOT NULL, PRIMARY KEY(`dataType1`) ) INSERT_METHOD=LAST; ALTER TABLE runoob_alter_test INSERT_METHOD NO; ALTER TABLE runoob_alter_test INSERT_METHOD=NO; ALTER TABLE runoob_alter_test INSERT_METHOD FIRST; ALTER TABLE runoob_alter_test INSERT_METHOD=FIRST; ALTER TABLE runoob_alter_test INSERT_METHOD LAST; ALTER TABLE runoob_alter_test INSERT_METHOD=LAST;
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(20), "datatype3" TEXT NOT NULL, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1");
KEY_BLOCK_SIZE
KEY_BLOCK_SIZE的选择与存储引擎有关。对于MyISAM表,KEY_BLOCK_SIZE可选地指定用于索引键块的字节大小。对于InnoDB表,KEY_BLOCK_SIZE指定用于压缩的InnoDB表的页面大小(以KB为单位)。GaussDB(DWS)不支持该属性,DSC迁移时会将属性删除。
输入示例
CREATE TABLE `public`.`runoob_tbl_test`( `runoob_id` VARCHAR(30), `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submission_date` VARCHAR(30) ) ENGINE=MyISAM KEY_BLOCK_SIZE=8; ALTER TABLE runoob_tbl_test ENGINE=InnoDB; ALTER TABLE runoob_tbl_test KEY_BLOCK_SIZE=0;
输出示例
CREATE TABLE "public"."runoob_tbl_test" ( "runoob_id" VARCHAR(30), "runoob_title" VARCHAR(100) NOT NULL, "runoob_author" VARCHAR(40) NOT NULL, "submission_date" VARCHAR(30) ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("runoob_id");
MAX_ROWS
在MySQL中,MAX_ROWS表示在表中存储的最大行数。DSC迁移过程时会将该属性删除。
输入示例
CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), `dataType3` TEXT NOT NULL, PRIMARY KEY(`dataType1`) ); ALTER TABLE runoob_alter_test MAX_ROWS 100000; ALTER TABLE runoob_alter_test MAX_ROWS=100000;
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(20), "datatype3" TEXT NOT NULL, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1");
MIN_ROWS
MIN_ROWS表示在表中存储的最小行数。DSC迁移过程时会将该属性删除。
输入示例
CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), `dataType3` TEXT NOT NULL, PRIMARY KEY(`dataType1`) ); ALTER TABLE runoob_alter_test MIN_ROWS 10000; ALTER TABLE runoob_alter_test MIN_ROWS=10000;
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(20), "datatype3" TEXT NOT NULL, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1");
PACK_KEYS
在MySQL中,PACK_KEYS表示MyISAM存储引擎中的压缩索引。GaussDB(DWS)不支持该属性,DSC迁移时会将该属性删除。
输入示例
CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), `dataType3` TEXT NOT NULL, PRIMARY KEY(`dataType1`) ) ENGINE=MyISAM PACK_KEYS=1; ##A ALTER TABLE runoob_alter_test PACK_KEYS 0; ALTER TABLE runoob_alter_test PACK_KEYS=0; ##B ALTER TABLE runoob_alter_test PACK_KEYS 1; ALTER TABLE runoob_alter_test PACK_KEYS=1; ##C ALTER TABLE runoob_alter_test PACK_KEYS DEFAULT; ALTER TABLE runoob_alter_test PACK_KEYS=DEFAULT;
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(10), "datatype3" FLOAT(20), "datatype4" TEXT NOT NULL, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); --A --B --C
PASSWORD
在MySQL中,PASSWORD表示用户密码。GaussDB(DWS)不支持该参数,DSC迁移时会将该关键字删除。
输入示例
CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), `dataType3` TEXT NOT NULL, PRIMARY KEY(`dataType1`) ); ALTER TABLE runoob_alter_test PASSWORD 'HELLO';
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(20), "datatype3" TEXT NOT NULL, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1");
ROW_FORMAT
ROW_FORMAT定义了行存储的物理形式。ROW_FORMAT的选择与存储引擎有关,如果在创建表的时候选择了存储引擎不相关的ROW_FORMAT,则使用默认的ROW_FORMAT创建表。当ROW_FORMAT取值为DEFAULT,DSC迁移为SET NOCOMPRESS;当ROW_FORMAT取值为COMPRESSED时,DSC迁移为SET COMPRESS。GaussDB(DWS)不支持其他取值,当取其他值时DSC迁移时会将该属性删除。
输入示例
CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` FLOAT(10,2), `dataType3` DOUBLE(20,8), `dataType4` TEXT NOT NULL, PRIMARY KEY(`dataType1`) ) ENGINE=InnoDB; ## A. ALTER TABLE runoob_alter_test ROW_FORMAT DEFAULT; ALTER TABLE runoob_alter_test ROW_FORMAT=DEFAULT; ## B. ALTER TABLE runoob_alter_test ROW_FORMAT DYNAMIC; ALTER TABLE runoob_alter_test ROW_FORMAT=DYNAMIC; ## C. ALTER TABLE runoob_alter_test ROW_FORMAT COMPRESSED; ALTER TABLE runoob_alter_test ROW_FORMAT=COMPRESSED; ## D. ALTER TABLE runoob_alter_test ROW_FORMAT REDUNDANT; ALTER TABLE runoob_alter_test ROW_FORMAT=REDUNDANT; ## E. ALTER TABLE runoob_alter_test ROW_FORMAT COMPACT; ALTER TABLE runoob_alter_test ROW_FORMAT=COMPACT;
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(10), "datatype3" FLOAT(20), "datatype4" TEXT NOT NULL, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); -- A. ALTER TABLE "public"."runoob_alter_test" SET NOCOMPRESS; ALTER TABLE "public"."runoob_alter_test" SET NOCOMPRESS; -- B. -- C. ALTER TABLE "public"."runoob_alter_test" SET COMPRESS; ALTER TABLE "public"."runoob_alter_test" SET COMPRESS; -- D. -- E.
STATS_AUTO_RECALC
STATS_AUTO_RECALC指定是否为InnoDB表自动重新计算持久性统计信息。GaussDB(DWS)不支持该属性,DSC迁移时会将该关键字属性。
输入示例
CREATE TABLE `public`.`runoob_alter_test`( `runoob_id` VARCHAR(30), `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submission_date` VARCHAR(30) ) ENGINE=InnoDB, STATS_AUTO_RECALC=DEFAULT; ## A. ALTER TABLE runoob_alter_test STATS_AUTO_RECALC DEFAULT; ALTER TABLE runoob_alter_test STATS_AUTO_RECALC=DEFAULT; ## B. ALTER TABLE runoob_alter_test STATS_AUTO_RECALC 0; ALTER TABLE runoob_alter_test STATS_AUTO_RECALC=0; ## C. ALTER TABLE runoob_alter_test STATS_AUTO_RECALC 1; ALTER TABLE runoob_alter_test STATS_AUTO_RECALC=1;
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "runoob_id" VARCHAR(30), "runoob_title" VARCHAR(100) NOT NULL, "runoob_author" VARCHAR(40) NOT NULL, "submission_date" VARCHAR(30) ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("runoob_id"); -- A. -- B. -- C.
STATS_PERSISTENT
在MySQL中,STATS_PERSISTENT指定是否为InnoDB表启动持久性统计信息,通过CREATE TABLE或ALTER TABLE语句启动持久性统计信息。DSC迁移时会将该属性删除。
输入示例
CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), `dataType3` TEXT NOT NULL, PRIMARY KEY(`dataType1`) ) ENGINE=InnoDB, STATS_PERSISTENT=0; ## A. ALTER TABLE runoob_alter_test STATS_PERSISTENT DEFAULT; ALTER TABLE runoob_alter_test STATS_PERSISTENT=DEFAULT; ## B. ALTER TABLE runoob_alter_test STATS_PERSISTENT 0; ALTER TABLE runoob_alter_test STATS_PERSISTENT=0; ## C. ALTER TABLE runoob_alter_test STATS_PERSISTENT 1; ALTER TABLE runoob_alter_test STATS_PERSISTENT=1;
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(20), "datatype3" TEXT NOT NULL, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); -- A. -- B. -- C.
STATS_SAMPLE_PAGES
STATS_SAMPLE_PAGES指定估计索引列的基数和其他统计信息时要采样的索引页数。DSC迁移时会将该属性删除。
输入示例
CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), `dataType3` TEXT NOT NULL, PRIMARY KEY(`dataType1`) ) ENGINE=InnoDB,STATS_SAMPLE_PAGES=25; ALTER TABLE runoob_alter_test STATS_SAMPLE_PAGES 100; ALTER TABLE runoob_alter_test STATS_SAMPLE_PAGES=100;
输出示例
CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" FLOAT(20), "datatype3" TEXT NOT NULL, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1");
UNION
UNION 是 MERGE 引擎的建表参数。通过该关键字建表类似于创建普通视图。新创建的表将在逻辑上合并UNION关键字限定的多个表的数据。DSC迁移时会将该特性转为GaussDB视图创建语句。
输入示例
CREATE TABLE t1 ( a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, message CHAR(20) ) ENGINE=MyISAM; CREATE TABLE t2 ( a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, message CHAR(20) ) ENGINE=MyISAM; CREATE TABLE total ( a INT NOT NULL AUTO_INCREMENT, message CHAR(20)) ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;
输出示例
CREATE TABLE t1 ( a SERIAL NOT NULL PRIMARY KEY, message CHAR(20) ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("a"); CREATE TABLE t2 ( a SERIAL NOT NULL PRIMARY KEY, message CHAR(20) ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("a"); CREATE VIEW total(a, message) AS SELECT * FROM t1 UNION ALL SELECT * FROM t2;