华为云用户手册

  • 锁定SQL查询 如果不希望Data Studio从“历史执行SQL”列表中自动删除某些查询,可锁定这些查询。最多可锁定50条查询。锁定的查询会显示在列表顶部。在“SQL历史记录数”中设置的值不会影响锁定的查询。有关SQL历史记录数的更多信息,请参见表1。 “历史执行SQL”窗口关闭后重新打开时,锁定的查询会出现在列表顶部。 执行如下步骤锁定SQL查询: 选择所需SQL查询,单击。 “锁定状态”列显示查询的锁定状态。
  • PG_JOB_SINGLE PG_JOB_SINGLE视图用于显示当前节点的作业信息。 表1 PG_JOB_SINGLE字段 名字 类型 描述 job_id bigint 作业ID。 current_postgres_pid bigint 如果当前任务正在被执行,那么此处记录运行此任务的postgres线程ID。默认为-1,表示此任务未被执行或已执行完毕。 log_user name 创建者的UserName。 priv_user name 作业执行者的UserName。 dbname name 标识作业执行的数据库名。 node_name name 标识当前作业是在哪个CN上创建和执行。 job_status text 当前任务的执行状态,取值范围:('r', 's', 'f', 'd','p','w','l'),默认为's',取值含义: r=running s=successfully finished f=job failed d=disable p=pending w=waiting l=launching 说明: 当用户将定时任务关闭(即job_queue_processes为0时),由于监控job执行的线程不会启动,所以job_status不会根据job的实时状态进行设置,用户不需要关注job_status。 只有当开启定时任务功能(job_queue_processes为非0时),系统才会根据当前job的实时状态刷新job_status的值。 其中,当前任务的执行状态“p,w,l”仅8.3.0.100及以上集群版本支持。 start_date timestamp without time zone 作业第一次开始执行时间,时间精确到毫秒。 next_run_date timestamp without time zone 下次定时执行任务的时间,时间精确到毫秒。 failure_count smallint 连续失败计数。 interval text 作业执行的重复时间间隔。 last_start_date timestamp without time zone 上次运行开始时间,时间精确到毫秒。 last_end_date timestamp without time zone 上次运行的结束时间,时间精确到毫秒。 last_suc_date timestamp without time zone 上次成功运行的开始时间,时间精确到毫秒。 this_run_date timestamp without time zone 正在运行任务的开始时间,时间精确到毫秒。 nspname name 作业运行时所在的命名空间的名称。 what text 作业内容。 父主题: 系统视图
  • vacuum_cost_delay 参数说明:指定开销超过vacuum_cost_limit的值时,进程睡眠的时间。 参数类型:USERSET 取值范围:整型,0~100,单位为毫秒(ms)。正数值表示打开基于开销的清理延迟特性;0表示关闭基于开销的清理延迟特性。 默认值:0 许多系统上,睡眠的有效分辨率是10毫秒。因此把vacuum_cost_delay设置为一个不是10的整数倍的数值与将它设置为下一个10的整数倍作用相同。 此参数一般设置较小,常见的设置是10或20毫秒。调整此特性资源占用率时,最好是调整其他参数,而不是该参数。
  • 唯一索引 GaussDB(DWS) 不支持唯一索引(约束)与主键约束联合使用。DSC工具迁移时会根据GaussDB(DWS)的特性进行相应适配。 MySQL唯一索引(约束)与主键约束联合使用的场景在工具迁移时会与OLAP场景下的分布键构成复杂的关系。工具暂不支持唯一索引(约束)与主键约束联合使用的场景。 内联唯一索引,如存在主键索引与唯一索引是相同列,DSC工具迁移时会将唯一索引移除。 输入示例 1 2 3 4 5 6 CREATE TABLE IF NOT EXISTS `public`.`runoob_dataType_test` ( `id` INT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(128) NOT NULL, UNIQUE (id ASC) ); 输出示例 1 2 3 4 5 6 7 8 CREATE TABLE IF NOT EXISTS "public"."runoob_datatype_test" ( "id" SERIAL PRIMARY KEY, "name" VARCHAR(128) NOT NULL ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("id"); ALTER TABLE创建唯一索引,DSC工具迁移时会根据GaussDB(DWS)的特性创建普通索引。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 CREATE TABLE IF NOT EXISTS `public`.`runoob_alter_test`( `dataType1` int, `dataType2` FLOAT(10,2), `dataType3` DOUBLE(20,8) )ENGINE=InnoDB DEFAULT CHARSET=utf8; ALTER TABLE runoob_alter_test ADD UNIQUE idx_runoob_alter_test_datatype1(dataType1); ALTER TABLE runoob_alter_test ADD UNIQUE INDEX idx_runoob_alter_test_datatype1(dataType2); ALTER TABLE runoob_alter_test ADD UNIQUE KEY idx_runoob_alter_test_datatype1(dataType3); CREATE TABLE IF NOT EXISTS `public`.`runoob_alter_test`( `dataType1` int, `dataType2` FLOAT(10,2), `dataType3` DOUBLE(20,8), `dataType4` TEXT NOT NULL, `dataType5` YEAR NOT NULL DEFAULT '2018', `dataType6` DATETIME NOT NULL DEFAULT '2018-10-12 15:27:33.999999' )ENGINE=InnoDB DEFAULT CHARSET=utf8; ALTER TABLE runoob_alter_test ADD CONSTRAINT UNIQUE idx_runoob_alter_test_datatype1(dataType1); ALTER TABLE runoob_alter_test ADD CONSTRAINT UNIQUE INDEX idx_runoob_alter_test_datatype2(dataType2); ALTER TABLE runoob_alter_test ADD CONSTRAINT UNIQUE KEY idx_runoob_alter_test_datatype3(dataType3); ALTER TABLE runoob_alter_test ADD CONSTRAINT constraint_dataType UNIQUE idx_runoob_alter_test_datatype4(dataType4); ALTER TABLE runoob_alter_test ADD CONSTRAINT constraint_dataType UNIQUE INDEX idx_runoob_alter_test_datatype5(dataType5); ALTER TABLE runoob_alter_test ADD CONSTRAINT constraint_dataType UNIQUE KEY idx_runoob_alter_test_datatype6(dataType6); 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 CREATE TABLE IF NOT EXISTS "public"."runoob_alter_test" ( "datatype1" INTEGER, "datatype2" REAL, "datatype3" DOUBLE PRECISION ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); CREATE INDEX "idx_runoob_alter_test_datatype1" ON "public"."runoob_alter_test" ("datatype1"); CREATE INDEX "idx_runoob_alter_test_datatype1" ON "public"."runoob_alter_test" ("datatype2"); CREATE INDEX "idx_runoob_alter_test_datatype1" ON "public"."runoob_alter_test" ("datatype3"); CREATE TABLE IF NOT EXISTS "public"."runoob_alter_test" ( "datatype1" INTEGER, "datatype2" REAL, "datatype3" DOUBLE PRECISION, "datatype4" TEXT NOT NULL, "datatype5" SMALLINT NOT NULL DEFAULT '2018', "datatype6" TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT '2018-10-12 15:27:33.999999' ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); CREATE INDEX "idx_runoob_alter_test_datatype1" ON "public"."runoob_alter_test" ("datatype1"); CREATE INDEX "idx_runoob_alter_test_datatype2" ON "public"."runoob_alter_test" ("datatype2"); CREATE INDEX "idx_runoob_alter_test_datatype3" ON "public"."runoob_alter_test" ("datatype3"); CREATE INDEX "idx_runoob_alter_test_datatype4" ON "public"."runoob_alter_test" ("datatype4"); CREATE INDEX "idx_runoob_alter_test_datatype5" ON "public"."runoob_alter_test" ("datatype5"); CREATE INDEX "idx_runoob_alter_test_datatype6" ON "public"."runoob_alter_test" ("datatype6"); CREATE INDEX创建唯一索引,DSC工具迁移时会根据GaussDB(DWS)的特性创建普通索引。 输入示例 1 2 3 4 5 6 7 8 9 CREATE TABLE `public`.`test_index_table01` ( `TABLE01_ID` INT(11) NOT NULL, `TABLE01_THEME` VARCHAR(100) NULL DEFAULT NULL, `AUTHOR_NAME` CHAR(10) NULL DEFAULT NULL, `AUTHOR_ID` INT(11) NULL DEFAULT NULL, `CREATE_TIME` INT NULL DEFAULT NULL, PRIMARY KEY(`TABLE01_ID`) ); CREATE UNIQUE INDEX AUTHOR_INDEX ON `test_index_table01`(AUTHOR_ID); 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 CREATE TABLE "public"."test_index_table01" ( "table01_id" INTEGER NOT NULL, "table01_theme" VARCHAR(400) DEFAULT NULL, "author_name" CHAR(40) DEFAULT NULL, "author_id" INTEGER DEFAULT NULL, "create_time" INTEGER DEFAULT NULL, PRIMARY KEY ("table01_id") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("table01_id"); CREATE INDEX "author_index" ON "public"."test_index_table01" ("author_id"); CREATE TABLE中存在多个唯一索引,DSC工具迁移时会根据GaussDB(DWS)的特性将所有唯一索引创建为普通索引。 输入示例 1 2 3 4 5 6 7 8 9 CREATE TABLE `public`.`test_index_table01` ( `TABLE01_ID` INT(11) NOT NULL, `TABLE01_THEME` VARCHAR(100) NULL DEFAULT NULL, `AUTHOR_NAME` CHAR(10) NULL DEFAULT NULL, `AUTHOR_ID` INT(11) NULL DEFAULT NULL, `CREATE_TIME` INT NULL DEFAULT NULL, UNIQUE(`TABLE01_ID`), UNIQUE(`AUTHOR_ID`) ); 输出示例 1 2 3 4 5 6 7 8 9 CREATE TABLE "public"."test_index_table01" ( "table01_id" INTEGER NOT NULL, "table01_theme" VARCHAR(400) DEFAULT NULL, "author_name" CHAR(40) DEFAULT NULL, "author_id" INTEGER DEFAULT NULL, "create_time" INTEGER DEFAULT NULL ) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("table01_id"); CREATE INDEX "idx_test_index_table01_table01_id" ON "public"."test_index_table01"("TABLE01_ID"); CREATE INDEX "idx_test_index_table01_author_id" ON "public"."test_index_table01"("AUTHOR_ID"); CREATE TABLE中存在一个唯一索引,并不存在主键索引时,DSC工具迁移时会根据GaussDB(DWS)的特性保留该唯一索引。 输入示例 1 2 3 4 5 6 7 8 CREATE TABLE `public`.`test_index_table01` ( `TABLE01_ID` INT(11) NOT NULL, `TABLE01_THEME` VARCHAR(100) NULL DEFAULT NULL, `AUTHOR_NAME` CHAR(10) NULL DEFAULT NULL, `AUTHOR_ID` INT(11) NULL DEFAULT NULL, `CREATE_TIME` INT NULL DEFAULT NULL, UNIQUE(`AUTHOR_ID`) ); 输出示例 1 2 3 4 5 6 7 8 CREATE TABLE "public"."test_index_table01" ( "table01_id" INTEGER NOT NULL, "table01_theme" VARCHAR(400) DEFAULT NULL, "author_name" CHAR(40) DEFAULT NULL, "author_id" INTEGER DEFAULT NULL, "create_time" INTEGER DEFAULT NULL, UNIQUE ("author_id") ) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("author_id"); CREATE TABLE中存在主键索引时,DSC工具迁移时会根据GaussDB(DWS)的特性将所有的唯一索引创建为普通索引。 输入示例 1 2 3 4 5 6 7 8 9 CREATE TABLE `public`.`test_index_table01` ( `TABLE01_ID` INT(11) NOT NULL, `TABLE01_THEME` VARCHAR(100) NULL DEFAULT NULL, `AUTHOR_NAME` CHAR(10) NULL DEFAULT NULL, `AUTHOR_ID` INT(11) NULL DEFAULT NULL, `CREATE_TIME` INT NULL DEFAULT NULL, PRIMARY KEY(`TABLE01_ID`), UNIQUE(`AUTHOR_ID`) ); 输出示例 1 2 3 4 5 6 7 8 9 CREATE TABLE "public"."test_index_table01" ( "table01_id" INTEGER NOT NULL, "table01_theme" VARCHAR(400) DEFAULT NULL, "author_name" CHAR(40) DEFAULT NULL, "author_id" INTEGER DEFAULT NULL, "create_time" INTEGER DEFAULT NULL, PRIMARY KEY ("table01_id") ) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("table01_id"); CREATE INDEX "idx_test_index_table01_author_id" ON "public"."test_index_table01"("AUTHOR_ID"); 父主题: 索引
  • 返回值 SQL_SUCCESS:表示调用正确。 SQL_SUCCESS_WITH_INFO:表示会有一些警告信息。 SQL_NEED_DATA:表示在执行SQL语句前没有提供足够的参数。 SQL_ERROR:表示比较严重的错误,如:内存分配失败、建立连接失败等。 SQL_NO_DATA:表示SQL语句不返回结果集。 SQL_INVALID_HANDLE:表示调用无效句柄。其他API的返回值同理。 SQL_STILL_EXECUTING:表示语句正在执行。
  • 任务示例 查看gsql的帮助信息。具体执行命令请参见表1。 表1 使用gsql联机帮助 描述 示例 查看版权信息 \copyright 查看GaussDB(DWS)支持的SQL语句的帮助 查看GaussDB(DWS)支持的SQL语句的帮助 例如,查看GaussDB(DWS)支持的所有SQL语句: 1 2 3 4 5 6 \h Available help: ABORT ALTER DATABAE ALTER DATA SOURCE ... ... 例如,查看CREATE DATABASE命令的参数可使用下面的命令: 1 2 3 4 5 6 7 8 9 10 11 12 13 \help CREATE DATABASE Command: CREATE DATABASE Description: create a new database Syntax: CREATE DATABASE database_name [ [ WITH ] {[ OWNER [=] user_name ]| [ TEMPLATE [=] template ]| [ ENCODING [=] encoding ]| [ LC_COLLATE [=] lc_collate ]| [ LC_CTYPE [=] lc_ctype ]| [ DBCOMPATIBILITY [=] compatibility_type ]| [ TABLESPACE [=] tablespace_name ]| [ CONNECTION LIMIT [=] connlimit ]}[...] ]; 查看gsql命令的帮助 例如,查看gsql支持的命令: 1 2 3 4 5 6 7 \? General \copyright show PostgreSQL usage and distribution terms \g [FILE] or ; execute query (and send results to file or |pipe) \h(\help) [NAME] help on syntax of SQL commands, * for all commands \q quit gsql ... ...
  • 操作步骤 连接数据库时,可以使用如下命令获取帮助信息。 gsql --help 显示如下帮助信息: ...... Usage: gsql [OPTION]... [DBNAME [USERNAME]] General options: -c, --command=COMMAND run only single command (SQL or internal) and exit -d, --dbname=DBNAME database name to connect to (default: "postgres") -f, --file=FILENAME execute commands from file, then exit ...... 连接到数据库后,可以使用如下命令获取帮助信息。 help 显示如下帮助信息: You are using gsql, the command-line interface to gaussdb. Type: \copyright for distribution terms \h for help with SQL commands \? for help with gsql commands \g or terminate with semicolon to execute query \q to quit
  • PGXC_BULKLOAD_STATISTICS 通过CN查看PGXC_BULKLOAD_STATISTICS视图,可获取GDS、COPY、\COPY等业务执行过程中的实时统计信息。该视图汇总当前集群上各个节点正在执行的导入/导出类业务的实时执行情况,从而可以监控导入导出类业务的实时进度,辅助进行性能问题排查。 PGXC_BULKLOAD_STATISTICS视图与PG_BULKLOAD_STATISTICS视图列定义完全相同。这是由于PGXC_BULKLOAD_STATISTICS视图本质是到集群中各个节点上查询PG_BULKLOAD_STATISTICS视图汇总的结果。 需要有系统管理员权限才可以访问此视图。 表1 PGXC_BULKLOAD_STATISTICS字段 名称 类型 描述 node_name text 节点名称。 db_name text 数据库名称。 query_id bigint 查询ID,对应debug_query_id。 tid bigint 当前线程的线程号。 lwtid integer 当前线程的轻量级线程号。 session_id bigint GDS的会话ID。 direction text 业务类型,取值包括:gds to file、gds from file、gds to pipe、gds from pipe、copy from、copy to。 query text 查询语句。 address text 当前导入导出外表的location。 query_start timestamp with time zone 导入/导出开始时间。 total_bytes bigint 待处理数据的总大小。 仅GDS普通文件导入时,且该行记录来自CN节点才会显示,否则为空。 phase text 当前阶段,包括:INITIALIZING、TRANSFER_DATA、RELEASE_RESOURCE。 done_lines bigint 已传输行数。 done_bytes bigint 已传输字节数。 父主题: 系统视图
  • COMMENT 在MySQL中,COMMENT对表进行注释。GaussDB(DWS)支持该属性修改表定义信息,DSC工具迁移时会添加额外的表属性信息。 输入示例 1 2 3 4 5 6 7 8 CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` FLOAT(10,2) COMMENT 'dataType2列', PRIMARY KEY(`dataType1`) ) comment='表的注释'; ALTER TABLE `public`.`runoob_alter_test` COMMENT '修改后的表的注释'; ALTER TABLE `public`.`runoob_alter_test` ADD INDEX age_index(dataType2) COMMENT '索引'; 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" REAL COMMENT 'dataType2列', PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1") COMMENT '表的注释'; ALTER TABLE "public"."runoob_alter_test" COMMENT '修改后的表的注释'; CREATE INDEX "age_index" ON "public"."runoob_alter_test" ("dataType2") COMMENT '索引'; 父主题: 表(可选参数、操作)
  • BTREE索引 GaussDB(DWS)支持BTREE索引,但USING BTREE关键字在语句中的位置与MySQL存在差异。DSC工具迁移时会根据GaussDB(DWS)的特性进行相应适配。 内联BTREE索引 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 CREATE TABLE `public`.`test_create_table03` ( `DEMAND_ID` INT(11) NOT NULL AUTO_INCREMENT, `DEMAND_NAME` CHAR(100) NOT NULL, `THEME` VARCHAR(200) NULL DEFAULT NULL, `SEND_ID` INT(11) NULL DEFAULT NULL, `SEND_NAME` CHAR(20) NULL DEFAULT NULL, `SEND_TIME` DATETIME NULL DEFAULT NULL, `DEMAND_CONTENT` TEXT NOT NULL, PRIMARY KEY(`DEMAND_ID`), INDEX THEME_INDEX(THEME) USING BTREE, INDEX NAME_INDEX USING BTREE (SEND_NAME(10)) ); 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CREATE TABLE "public"."test_create_table03" ( "demand_id" SERIAL NOT NULL, "demand_name" CHAR(400) NOT NULL, "theme" VARCHAR(800) DEFAULT NULL, "send_id" INTEGER DEFAULT NULL, "send_name" CHAR(80) DEFAULT NULL, "send_time" TIMESTAMP WITHOUT TIME ZONE DEFAULT NULL, "demand_content" TEXT NOT NULL, PRIMARY KEY ("demand_id") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("demand_id"); CREATE INDEX "theme_index" ON "public"."test_create_table03" USING BTREE ("theme"); CREATE INDEX "name_index" ON "public"."test_create_table03" USING BTREE ("send_name"); ALTER TABLE创建BTREE索引。 输入示例 1 2 3 4 5 6 7 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 ADD KEY alterTable_addKey_indexType (dataType1) USING BTREE; 输出示例 1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE IF NOT EXISTS "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" REAL, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); CREATE INDEX "altertable_addkey_indextype" ON "public"."runoob_alter_test" ("datatype1"); CREATE INDEX创建BTREE索引。 输入示例 1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE `public`.`test_index_table05` ( `ID` INT(11) NOT NULL AUTO_INCREMENT, `USER_ID` INT(20) NOT NULL, `USER_NAME` CHAR(20) NULL DEFAULT NULL, `DETAIL` VARCHAR(100) NULL DEFAULT NULL, PRIMARY KEY (`ID`) ); CREATE UNIQUE INDEX USER_ID_INDEX USING BTREE ON TEST_INDEX_TABLE05(USER_ID); CREATE INDEX USER_NAME_INDEX USING BTREE ON TEST_INDEX_TABLE05(USER_NAME(10)); CREATE INDEX DETAIL_INDEX ON TEST_INDEX_TABLE05(DETAIL(50)) USING BTREE; CREATE INDEX USER_INFO_INDEX USING BTREE ON TEST_INDEX_TABLE05(USER_ID,USER_NAME(10)); 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CREATE TABLE "public"."test_index_table05" ( "id" SERIAL NOT NULL, "user_id" INTEGER NOT NULL, "user_name" CHAR(80) DEFAULT NULL, "detail" VARCHAR(400) DEFAULT NULL, PRIMARY KEY ("id") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("id"); CREATE INDEX "user_id_index" ON "public"."test_index_table05" ("user_id"); CREATE INDEX "user_name_index" ON "public"."test_index_table05" USING BTREE ("user_name"); CREATE INDEX "detail_index" ON "public"."test_index_table05" USING BTREE ("detail"); CREATE INDEX "user_info_index" ON "public"."test_index_table05" USING BTREE ("user_id","user_name"); 父主题: 索引
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 BEGIN FOR ROW_TRANS IN SELECT first_name FROM staffs LOOP DBMS_OUTPUT.PUT_LINE (ROW_TRANS.first_name ); END LOOP; END; / --创建表 CREATE TABLE integerTable1( A INTEGER) DISTRIBUTE BY hash(A); CREATE TABLE integerTable2( B INTEGER) DISTRIBUTE BY hash(B); INSERT INTO integerTable2 VALUES(2); --多游标共享游标属性的标量 DECLARE CURSOR C1 IS SELECT A FROM integerTable1;--声明游标 CURSOR C2 IS SELECT B FROM integerTable2; PI_A INTEGER; PI_B INTEGER; BEGIN OPEN C1;--打开游标 OPEN C2; FETCH C1 INTO PI_A; ---- C1%FOUND 和 C2%FOUND 值为 FALSE FETCH C2 INTO PI_B; ---- C1%FOUND 和 C2%FOUND 的值都为 TRUE --判断游标状态 IF C1%FOUND THEN IF C2%FOUND THEN DBMS_OUTPUT.PUT_LINE('Dual cursor share paremeter.'); END IF; END IF; CLOSE C1;--关闭游标 CLOSE C2; END; / --删除临时表 DROP TABLE integerTable1; DROP TABLE integerTable2;
  • Bitmap索引 该功能通过BitmapIndexSupport设置,迁移过程中默认注释掉Bitmap索引。 输入:Bitmap索引 1 2 3 CREATE BITMAP INDEX emp_bitmap_idx ON index_demo (gender); 输出 1 /*CREATE BITMAP INDEX emp_bitmap_idx ON index_demo (gender);*/ 如果BitmapIndexSupport设置为BTREE,迁移结果如下: 输出 1 2 3 4 5 CREATE /*bitmap*/ INDEX emp_bitmap_idx ON index_demo USING btree (gender) ; 父主题: Oracle语法迁移
  • 添加与删除列 MySQL添加、删除列语句与GaussDB(DWS)存在差异。DSC工具迁移时会根据GaussDB(DWS)的特性进行相应适配。 GaussDB不支持表定义中列序数的变更,工具暂不支持FRIST,AFTER特性的完整迁移。基于当前的临时方案,工具仅仅移除该关键字。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 CREATE TABLE IF NOT EXISTS `runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` FLOAT(10,2), `dataType3` DOUBLE(20,8), `dataType4` TEXT NOT NULL, `dataType5` YEAR NOT NULL DEFAULT '2018', `dataType6` DATETIME NOT NULL DEFAULT '2018-10-12 15:27:33.999999', `dataType7` CHAR NOT NULL DEFAULT '', `dataType8` VARCHAR(50), `dataType9` VARCHAR(50) NOT NULL DEFAULT '', `dataType10` TIME NOT NULL DEFAULT '10:20:59', PRIMARY KEY(`dataType1`) )ENGINE=InnoDB DEFAULT CHARSET=utf8; ## A. ALTER TABLE runoob_alter_test ADD dataType1_1 INT NOT NULL AFTER dataType1; ALTER TABLE runoob_alter_test DROP dataType1_1; ## B. ALTER TABLE runoob_alter_test ADD dataType1_1 INT NOT NULL FIRST; ALTER TABLE runoob_alter_test DROP dataType1_1; ## C. ALTER TABLE runoob_alter_test ADD COLUMN dataType1_1 INT NOT NULL AFTER dataType2; ALTER TABLE runoob_alter_test DROP COLUMN dataType1_1; ## D. ALTER TABLE runoob_alter_test ADD COLUMN dataType1_1 INT NOT NULL FIRST; ALTER TABLE runoob_alter_test DROP COLUMN dataType1_1; ## E. ALTER TABLE runoob_alter_test ADD COLUMN(dataType1_1 INT NOT NULL, dataType1_2 VARCHAR(200) NOT NULL); ALTER TABLE runoob_alter_test DROP COLUMN dataType1_1, DROP COLUMN dataType1_2; 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" REAL, "datatype3" DOUBLE PRECISION, "datatype4" TEXT NOT NULL, "datatype5" SMALLINT NOT NULL DEFAULT '2018', "datatype6" TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT '2018-10-12 15:27:33.999999', "datatype7" CHAR(4) NOT NULL DEFAULT '', "datatype8" VARCHAR(200), "datatype9" VARCHAR(200) NOT NULL DEFAULT '', "datatype10" TIME WITHOUT TIME ZONE NOT NULL DEFAULT '10:20:59', PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); -- A. ALTER TABLE "public"."runoob_alter_test" ADD COLUMN "datatype1_1" INTEGER NOT NULL DEFAULT 0; ALTER TABLE "public"."runoob_alter_test" DROP COLUMN "datatype1_1" RESTRICT; -- B. ALTER TABLE "public"."runoob_alter_test" ADD COLUMN "datatype1_1" INTEGER NOT NULL DEFAULT 0; ALTER TABLE "public"."runoob_alter_test" DROP COLUMN "datatype1_1" RESTRICT; -- C. ALTER TABLE "public"."runoob_alter_test" ADD COLUMN "datatype1_1" INTEGER NOT NULL DEFAULT 0; ALTER TABLE "public"."runoob_alter_test" DROP COLUMN "datatype1_1" RESTRICT; -- D. ALTER TABLE "public"."runoob_alter_test" ADD COLUMN "datatype1_1" INTEGER NOT NULL DEFAULT 0; ALTER TABLE "public"."runoob_alter_test" DROP COLUMN "datatype1_1" RESTRICT; -- E. ALTER TABLE "public"."runoob_alter_test" ADD COLUMN "datatype1_1" INTEGER NOT NULL, ADD COLUMN "datatype1_2" VARCHAR(800) NOT NULL DEFAULT ''; ALTER TABLE "public"."runoob_alter_test" DROP COLUMN "datatype1_1" RESTRICT, DROP COLUMN "datatype1_2" RESTRICT; 父主题: 表(可选参数、操作)
  • INSERT INSERT插入形式包括:HIGH_PRIORITY、LOW_PRIORITY、PARTITION、DELAYED、IGNORE、多值插入以及ON DUPLICATE KEY UPDATE。 HIGH_PRIORITY LOW_PRIORITY PARTITION DELAYED IGNORE VALUES(单语句多行值插入) ON DUPLICATE KEY UPDATE SET 父主题: 数据操作语句(DML)
  • 命令格式 gs_restore [OPTION]... FILE FILE没有短选项或长选项。用来指定归档文件所处的位置。 作为前提条件,需输入dbname或-l选项。不允许用户同时输入dbname和-l选项。 gs_restore默认是以追加的方式进行数据导入。为避免多次导入造成数据异常,在进行导入时,建议使用"-e"和"-c" 参数,即导入前删除已存在于待导入数据库中的数据库对象,同时当出现导入错误时,忽略当前错误,继续执行导入任务,并在导入后会显示相应的错误信息。
  • 背景信息 gs_restore是GaussDB(DWS)提供的针对gs_dump导出数据的导入工具。通过此工具可由gs_dump生成的导出文件进行导入。 主要功能包含: 导入到数据库 如果连接参数中指定了数据库,则数据将被导入到指定的数据库中。其中,并行导入必须指定连接的密码。 导入到脚本文件 如果未指定导入数据库,则创建包含重建数据库所必须的SQL语句脚本并写入到文件或者标准输出。等效于直接使用gs_dump导出为纯文本格式。
  • 示例 特例:执行gsql程序,使用如下选项导入由gs_dump/gs_dumpall生成导出文件夹(纯文本格式)的MPPDB_backup.sql文件到gaussdb数据库。 gsql -d gaussdb -p 8000 -W {password} -f /home/omm/test/MPPDB_backup.sql SET SET SET SET SET ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE ALTER TABLE CREATE INDEX CREATE INDEX CREATE INDEX SET CREATE INDEX REVOKE REVOKE GRANT GRANT total time: 30476 ms gs_restore用来导入由gs_dump生成的导出文件。 示例1:执行gs_restore,将导出的MPPDB_backup.dmp文件(自定义归档格式)导入到gaussdb数据库。 gs_restore -W {password} backup/MPPDB_backup.dmp -p 8000 -d gaussdb gs_restore: restore operation successful gs_restore: total time: 13053 ms 示例2:执行gs_restore,将导出的MPPDB_backup.tar文件(tar格式)导入到gaussdb数据库。 gs_restore backup/MPPDB_backup.tar -p 8000 -d gaussdb gs_restore[2017-07-21 19:16:26]: restore operation successful gs_restore[2017-07-21 19:16:26]: total time: 21203 ms 示例3:执行gs_restore,将导出的MPPDB_backup文件(目录格式)导入到gaussdb数据库。 gs_restore backup/MPPDB_backup -p 8000 -d gaussdb gs_restore[2017-07-21 19:16:26]: restore operation successful gs_restore[2017-07-21 19:16:26]: total time: 21003 ms 示例4:执行gs_restore,使用自定义归档格式的MPPDB_backup.dmp文件来进行如下导入操作。 导入PUBLIC模式下所有对象的定义和数据。在导入时会先删除已经存在的对象,如果原对象存在跨模式的依赖则需手工强制干预。 gs_restore backup/MPPDB_backup.dmp -p 8000 -d gaussdb -e -c -n PUBLIC gs_restore: [archiver (db)] Error while PROCESSING TOC: gs_restore: [archiver (db)] Error from TOC entry 313; 1259 337399 TABLE table1 gaussdba gs_restore: [archiver (db)] could not execute query: ERROR: cannot drop table table1 because other objects depend on it DETAIL: view t1.v1 depends on table table1 HINT: Use DROP ... CASCADE to drop the dependent objects too. Command was: DROP TABLE public.table1; 手工删除依赖,导入完成后再重新创建。 gs_restore backup/MPPDB_backup.dmp -p 8000 -d gaussdb -e -c -n PUBLIC gs_restore[2017-07-21 19:16:26]: restore operation successful gs_restore[2017-07-21 19:16:26]: total time: 2203 ms 示例5:执行gs_restore,使用自定义归档格式的MPPDB_backup.dmp文件来进行如下导入操作。只导入PUBLIC模式下表table1的定义。 gs_restore backup/MPPDB_backup.dmp -p 8000 -d gaussdb -e -c -s -n PUBLIC -t table1 gs_restore[2017-07-21 19:16:26]: restore operation successful gs_restore[2017-07-21 19:16:26]: total time: 21000 ms 示例6:执行gs_restore,使用自定义归档格式的MPPDB_backup.dmp文件来进行如下导入操作。只导入PUBLIC模式下表table1的数据。 gs_restore backup/MPPDB_backup.dmp -p 8000 -d gaussdb -e -a -n PUBLIC -t table1 gs_restore[2017-07-21 19:16:26]: restore operation successful gs_restore[2017-07-21 19:16:26]: total time: 20203 ms
  • 配置DSC和迁移属性 DSC配置涉及DSC/config目录中的配置文件,请根据表3配置对应的参数。 表3 DSC配置参数 迁移场景 配置文件 配置参数 Teradata SQL迁移 DSC:application.properties Teradata SQL配置:features-teradata.properties 1 2 3 4 5 6 7 8 9 10 11 deleteToTruncate=True/False distributeByHash=one/many extendedGroupByClause=True/False inToExists=True/False rowstoreToColumnstore=True/False session_mode=Teradata/ANSI tdMigrateDollar=True/False tdMigrateALIAS=True/False tdMigrateNULLIFZero=True/False tdMigrateZEROIFNULL=True/False volatile=local temporary/unlogged Teradata Perl迁移 DSC:application.properties Teradata Perl配置:perl-migration.properties 1 2 3 4 5 6 7 8 add-timing-on=True/False db-bteq-tag-name=bteq db-tdsql-tag-name=sql_lang logging-level=error/warning/info migrate-variables=True/False remove-intermediate-files=True/False target_files=overwrite/cancel migrate-executequery=True/False MySQL SQL迁移 DSC:application.properties MySQL配置:features-mysql.properties 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 table.databaseAsSchema=true table.defaultSchema=public table.schema= table.orientation=ROW table.type=HASH table.partition-key.choose.strategy=partitionKeyChooserStrategy table.partition-key.name= table.compress.mode=NOCOMPRESS table.compress.level=0 table.compress.row=NO table.compress.column=LOW table.database.template=template0 table.index.rename=false table.database.onlyFullGroupBy=true table.database.realAsFloat=false
  • 配置自定义数据库脚本 用户可以使用自定义数据库的SQL脚本从Teradata迁移那些不直接存在于目标数据库的关键字。 迁移之前,这些脚本必须在每个目标数据库中执行一次。 打开发布包中的scripts文件夹,文件目录如表2所示。 SQL文件包含自定义迁移函数。GaussDB (DWS)数据库需要通过这些函数支持Teradata的具体特性。 表2 DSC自定义数据库脚本 文件夹 脚本文件 描述 -- scripts - 文件夹:所有脚本 ------ teradata - 文件夹:Teradata函数和脚本 -------- view - 文件夹:配置视图的脚本 - vw_td_dbc_tables.sql 脚本:启动Teradata中DBC.TABLES的迁移 - vw_td_dbc_indices.sql 脚本:启动Teradata中DBC.INDICES的迁移 -------- function - 文件夹:配置Teradata系统函数的脚本 -X mig_fn_get_datatype_short_name.sql 脚本:启动Teradata中DBC.COLUMNS的迁移 - mig_fn_castasint.sql 脚本:启动CAST AS INTEGER的迁移 --------db_scripts - 文件夹:启动Teradata自定义函数的脚本 - mig_fn_get_datatype_short_name.sql 脚本:启动Teradata中DBC.COLUMNS的迁移 --------core - 文件夹:Teradata关键脚本 - teradatacore.pm 脚本:执行Perl迁移的脚本
  • 执行自定义数据库脚本 执行数据库自定义脚本是为了支持目标数据库某些版本中不存在的关键字。这些脚本在迁移之前需在目标数据库中执行一次。 DSC/scripts目录中的自定义脚本如表1所示。有关如何执行自定义脚本的详细信息,请参见配置自定义数据库脚本。 表1 自定义数据库脚本 自定义脚本 说明 mig_fn_get_datatype_short_name.sql Teradata函数的自定义数据库脚本 mig_fn_castasint.sql 用于迁移CAST AS INTEGER的自定义数据库脚本 vw_td_dbc_tables.sql 用于迁移DBC.TABLES的自定义数据库脚本 vw_td_dbc_indices.sql 用于迁移DBC.INDICES的自定义数据库脚本
  • PG_RANGE PG_RANGE系统表存储关于范围类型的信息。 除了PG_TYPE里类型的记录。 表1 PG_RANGE字段 名字 类型 引用 描述 rngtypid oid PG_TYPE.oid 范围类型的OID。 rngsubtype oid PG_TYPE.oid 该范围类型的元素类型(子类型)的OID。 rngcollation oid PG_COLLATION.oid 用于范围比较的排序规则的OID,如果没有则为0。 rngsubopc oid PG_OPCLASS.oid 用于范围比较的子类型的操作符类的OID。 rngcanonical regproc PG_PROC.oid 转换范围类型为规范格式的函数的OID,如果没有则为0。 rngsubdiff regproc PG_PROC.oid 返回两个double precision元素值的不同的函数的OID,如果没有则为0。 rngsubopc(如果元素类型是可排序的,则加上rngcollation)决定用于范围类型的排序顺序。当元素类型是时使用rngcanonical用于离散类型的元素类型。 父主题: 系统表
  • 下载并安装Data Studio客户端 GaussDB(DWS) 提供了基于Windows平台的Data Studio图形界面客户端,该工具依赖JDK,请先在客户端主机上安装JDK。 仅支持Java 1.8版本的JDK。 在Windows操作系统中,您可以访问JDK官网网站,下载符合操作系统版本的JDK,并根据指导进行安装。 登录GaussDB(DWS)管理控制台。在左侧导航栏中,单击“连接客户端”,进入“下载客户端和驱动”页面。 在“下载客户端和驱动”页面,下载“Data Studio图形界面客户端”。 请根据操作系统类型,选择“Windows x86”或“Windows x64”,再单击“下载”,可以下载与现有集群版本匹配的Data Studio工具。 单击“历史版本”可根据集群版本下载相应版本的Data Studio工具,建议按集群版本下载配套的工具。 图1 下载客户端 如果同时拥有不同版本的集群,选择与集群版本相对应的gsql版本客户端。在“集群管理”页面的集群列表中,单击指定集群的名称,再选择“集群详情”页签,可查看集群版本。 解压下载的客户端软件包(32位或64位)到需要安装的路径。 打开安装目录,双击Data Studio.exe,启动Data Studio客户端。 图2 启动客户端 表1 Data Studio安装包结构 文件夹/文件 说明 configuration 包含应用启动信息和所需Eclipse插件路径信息。 db_assistant 包含“SQL助手”功能相关的文件。 docs 包含《Data Studio用户手册.pdf》,本手册详细介绍了如何使用Data Studio工具。 包含在Data Studio中使用的开源软件的版权声明、许可证和书面邀约。 features 包含Eclipse(如富客户端协议GUI)和Data Studio特性。 p2 p2包含的文件用于提供和管理基于Eclipse和Equinox的应用。 plugins 包含必须的Eclipse和Data Studio插件。 tools 包含Data Studio的依赖工具。 UserData/ Autosave Logs/ Preferences/ Profile/ History/ Security/ 包含每个使用Data Studio的OS用户各自的文件夹。 Autosave:包含自动保存的查询和函数/过程信息。 Logs:包含Data Studio.log文件,该文件保存Data Studio所有操作的日志信息。 Preferences:包含Preferences.prefs文件,内容为自定义的首选项。 Profile:包含connection.properties文件、SQL执行历史、Profiles.txt文件,用于管理Data Studio中的连接信息。 Security:包含Data Studio安全管理所需文件。 说明: User Data文件夹在首个用户用Data Studio打开实例后创建。 日志文件夹、语言、内存设置、日志级别对所有用户生效。 Data Studio启动后,会创建日志文件夹、Data Studio.log文件、Preferences文件夹、Preferences.prefs文件、Profile文件夹、connection.properties文件、Profiles.txt文件和security文件夹。 如果Data Studio.ini文件中指定了日志文件夹路径,日志会在指定路径创建。 如果您因安全密钥被损坏,无法登录Data Studio,请按如下步骤生成新的安全密钥: 1. 从Data Studio文件夹下的UserData文件夹中删除security文件夹。 2. 重启Data Studio。 artifacts.xml 包含产品编译版本信息。 changelog.txt 包含当前版本的详细变更信息。 Data Studio.exe/DataStudio.sh 支持连接服务器并执行各种操作,如管理数据库对象、编辑或执行PL/SQL程序。 Data Studio.ini 包含Data Studio工具运行时的配置信息。 readme.txt 包含当前版本的功能和修复的问题。 若您的电脑阻止应用运行,可对Data Studio.exe文件属性勾选解除锁定即可启动。 安装完成后双击安装目录/tools的中StartDataStudio.bat文件检查操作系统、 Java和Data Studio的版本。 批量文件检查版本兼容性并打开Data Studio,或根据安装的操作系统、Java和Data Studio版本,显示相应的信息。 如果安装的Java版本低于1.8,可能会弹出错误消息。 批量文件检查如下场景,用于确认Data Studio的操作系统和Java版本: DS安装(32/64位) 操作系统(位) Java(位) 结果 32 32 32 打开Data Studio 32 64 32 打开Data Studio 32 64 64 弹出错误消息 64 32 32 弹出错误消息 64 64 32 弹出错误消息 64 64 64 打开Data Studio 父主题: Data Studio
  • PARTITION BY LIST 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE TABLE IF NOT EXISTS `runoob_tbl_part_test`( `runoob_id` INT NOT NULL, `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submission_date` VARCHAR(30), PRIMARY KEY (`runoob_id`) )ENGINE=InnoDB DEFAULT CHARSET=utf8 PARTITION BY LIST (runoob_id)( PARTITION r0 VALUES IN (1, 5, 9, 13, 17, 21), PARTITION r1 VALUES IN (2, 6, 10, 14, 18, 22), PARTITION r2 VALUES IN (3, 7, 11, 15, 19, 23), PARTITION r3 VALUES IN (4, 8, 12, 16, 20, 24) ); ALTER TABLE `runoob_tbl_part_test` ADD PARTITION (PARTITION p5 VALUES IN(30, 40, 50, 60, 70, 80)); 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 CREATE TABLE IF NOT EXISTS "public"."runoob_tbl_part_test" ( "runoob_id" INTEGER NOT NULL, "runoob_title" VARCHAR(400) NOT NULL, "runoob_author" VARCHAR(160) NOT NULL, "submission_date" VARCHAR(120), PRIMARY KEY ("runoob_id") ) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("runoob_id") PARTITION BY LIST (runoob_id) ( PARTITION r0 VALUES (1, 5, 9, 13, 17, 21), PARTITION r1 VALUES (2, 6, 10, 14, 18, 22), PARTITION r2 VALUES (3, 7, 11, 15, 19, 23), PARTITION r3 VALUES (4, 8, 12, 16, 20, 24) ); ALTER TABLE "public"."runoob_tbl_part_test" ADD PARTITION p5 VALUES (30, 40, 50, 60, 70, 80);
  • GS_BLOCKLIST_QUERY GS_BLOCKLIST_QUERY视图用于查询作业黑名单信息和异常信息,此视图是由系统表GS_BLOCKLIST_QUERY和GS_WLM_SESSION_INFO关联所得,同时对查询结果进行了去重筛选,因此在GS_WLM_SESSION_INFO表较大的情况下,查询可能需要消耗较长时间。 表1 GS_BLOCKLIST_QUERY视图字段 名字 类型 引用 描述 unique_sql_id bigint - 基于查询解析树生成的查询唯一ID。 block_list boolean - 查询作业是否属于黑名单。 except_num integer - 查询作业异常次数。 except_time timestamp - 查询作业最近一次异常时间。 query text - 执行的查询语句。 此视图仅限在gaussdb数据库中查询,其它数据库中查询会直接报错。 通常对于DML语句,在计算Unique SQL ID的过程中会忽略常量值。但对于DDL、DCL以及设置参数等语句,常量值不可以忽略。因此一个unique_sql_id可能会对应一个或多个查询。 父主题: 系统视图
  • PARTITION BY RANGE 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 CREATE TABLE IF NOT EXISTS `runoob_tbl_part_test`( `runoob_id` INT NOT NULL, `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submission_date` VARCHAR(30) )ENGINE=InnoDB DEFAULT CHARSET=utf8 PARTITION BY RANGE (`runoob_id`)( PARTITION p0 VALUES LESS THAN(100), PARTITION p1 VALUES LESS THAN(200), PARTITION p2 VALUES LESS THAN(300), PARTITION p3 VALUES LESS THAN(400), PARTITION p4 VALUES LESS THAN(500), PARTITION p5 VALUES LESS THAN (MAXVALUE) ); ALTER TABLE `runoob_tbl_part_test` ADD PARTITION (PARTITION p6 VALUES LESS THAN (600)); ALTER TABLE `runoob_tbl_part_test` ADD PARTITION (PARTITION p7 VALUES LESS THAN (700),PARTITION p8 VALUES LESS THAN (800)); 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 CREATE TABLE IF NOT EXISTS "public"."runoob_tbl_part_test" ( "runoob_id" INTEGER NOT NULL, "runoob_title" VARCHAR(400) NOT NULL, "runoob_author" VARCHAR(160) NOT NULL, "submission_date" VARCHAR(120) ) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("runoob_id") PARTITION BY RANGE ("runoob_id") ( PARTITION p0 VALUES LESS THAN (100), PARTITION p1 VALUES LESS THAN (200), PARTITION p2 VALUES LESS THAN (300), PARTITION p3 VALUES LESS THAN (400), PARTITION p4 VALUES LESS THAN (500), PARTITION p5 VALUES LESS THAN (MAXVALUE) ); ALTER TABLE "public"."runoob_tbl_part_test" ADD PARTITION p6 VALUES LESS THAN (600); ALTER TABLE "public"."runoob_tbl_part_test" ADD PARTITION p7 VALUES LESS THAN (700), ADD PARTITION p8 VALUES LESS THAN (800);
  • Unique Index Netezza语法 迁移后语法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 CREATE TABLE prod ( prod_no number(6) not null unique, prod_name national character varying(32) not null, prod_desc clob ) DISTRIBUTE ON (prod_no) ORGANIZE ON (prod_no, prod_name) ; ---------- CREATE TABLE prod ( prod_no number(6) not null CONSTRAINT UQ_prod unique, prod_name national character varying(32) not null, prod_desc clob ) DISTRIBUTE ON (prod_no) ORGANIZE ON (prod_no, prod_name) ; ---------- CREATE TABLE prod ( prod_no number(6) not null PRIMARY KEY, prod_name national character varying(32) not null, prod_desc clob ) DISTRIBUTE ON (prod_no) ORGANIZE ON (prod_no, prod_name) ; ---------- CREATE TABLE prod ( prod_no number(6) not null, prod_name national character varying(32) not null, prod_desc clob, constraint uq_prod UNIQUE (prod_no) ) DISTRIBUTE ON (prod_no) ORGANIZE ON (prod_no, prod_name) ; ---------- CREATE TABLE prod ( prod_no number(6) not null, prod_name national character varying(32) not null, prod_desc clob ) DISTRIBUTE ON (prod_no) ORGANIZE ON (prod_no, prod_name) ; ALTER TABLE prod ADD constraint uq_prod UNIQUE (prod_no); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 CREATE TABLE prod ( prod_no number(6) not null /* unique */, prod_name national character varying(32) not null, prod_desc clob ) WITH(ORIENTATION=COLUMN) DISTRIBUTE BY HASH (prod_no) /* ORGANIZE ON (prod_no, prod_name) */ ; ---------- CREATE TABLE prod ( prod_no number(6) not null /* CONSTRAINT UQ_prod unique */, prod_name national character varying(32) not null, prod_desc clob ) WITH(ORIENTATION=COLUMN) DISTRIBUTE BY HASH (prod_no) /* ORGANIZE ON (prod_no, prod_name) */ ; ---------- CREATE TABLE prod ( prod_no number(6) not null /* PRIMARY KEY */, prod_name national character varying(32) not null, prod_desc clob ) WITH(ORIENTATION=COLUMN) DISTRIBUTE BY HASH (prod_no) /* ORGANIZE ON (prod_no, prod_name) */ ; ---------- CREATE TABLE prod ( prod_no number(6) not null, prod_name national character varying(32) not null, prod_desc clob /*, constraint uq_prod UNIQUE (prod_no) */ ) WITH(ORIENTATION=COLUMN) DISTRIBUTE BY HASH (prod_no) /* ORGANIZE ON (prod_no, prod_name)*/ ; ---------- CREATE TABLE prod ( prod_no number(6) not null, prod_name national character varying(32) not null, prod_desc clob ) DISTRIBUTE BY HASH (prod_no) /*ORGANIZE ON (prod_no, prod_name)*/ ; /* ALTER TABLE prod ADD constraint uq_prod UNIQUE (prod_no); */ 仅适用于COLUMN store。对于ROW存储,不应注释“唯一索引”。
  • PG_LANGUAGE PG_LANGUAGE系统表登记编程语言,用户可以用这些语言或接口写函数或者存储过程。 表1 PG_LANGUAGE字段 名字 类型 引用 描述 oid oid - 行标识符(隐藏属性,必须明确选择才会显示)。 lanname name - 语言的名称。 lanowner oid PG_AUTHID.oid 语言的所有者。 lanispl boolean - 内部语言为假(比如SQL),用户定义语言为真。目前,gs_dump仍然使用该字段判断哪些语言需要转储,但可能在将来会被其它机制所取代。 lanpltrusted boolean - 如果是可信语言则为真,即系统相信它不会被授予任何正常SQL执行环境之外的权限。只有初始用户可以在用非可信的语言创建函数。 lanplcallfoid oid PG_PROC.oid 对于非内部语言,这是指该语言处理器的引用,语言处理器是一个特殊函数, 负责执行以某种语言写的所有函数。 laninline oid PG_PROC.oid 此字段引用一个负责执行“inline”匿名代码块的函数(DO块)。如果不支持内联块则为0。 lanvalidator oid PG_PROC.oid 此字段引用一个语言校验器函数,它负责检查新创建函数的语法和有效性。如果没有提供校验器,则为0。 lanacl aclitem[] - 访问权限。 父主题: 系统表
  • DELAY_KEY_WRITE DELAY_KEY_WRITE只对MyISAM引擎表有作用,根据DELAY_KEY_WRITE的值来延迟更新直至表关闭。GaussDB(DWS)不支持该属性修改表定义信息,DSC迁移时会将该属性删除。 输入示例 1 2 3 4 5 6 7 8 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; 输出示例 1 2 3 4 5 6 7 8 9 10 CREATE TABLE "public"."runoob_tbl_test" ( "runoob_id" VARCHAR(120), "runoob_title" VARCHAR(400) NOT NULL, "runoob_author" VARCHAR(160) NOT NULL, "submission_date" VARCHAR(120) ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("runoob_id"); 父主题: 表(可选参数、操作)
  • 表(可选参数、操作) 本节主要介绍表(可选参数、操作)的迁移语法。迁移语法决定了关键字/功能的迁移方式。GaussDB(DWS)不支持表(可选参数),目前针对表(可选参数)的迁移方法都是临时迁移方法。 ALGORITHM ALTER TABLE RENAME AUTO_INCREMENT AVG_ROW_LENGTH BLOCK_SIZE CHARSET CHECKSUM CLUSTERED KEY COLLATE COMMENT CONNECTION DEFAULT DELAY_KEY_WRITE DISTRIBUTE BY DIRECTORY ENGINE FOREIGN_KEY_CHECKS IF NOT EXISTS INDEX_ALL INSERT_METHOD KEY_BLOCK_SIZE LOCK MAX_ROWS MIN_ROWS PACK_KEYS PARTITION BY PASSWORD ROW_FORMAT STATS_AUTO_RECALC STATS_PERSISTENT STATS_SAMPLE_PAGES UNION WITH AS CHANGE修改列 CHECK约束 DROP删除表 LIKE 表克隆 MODIFY修改列 TRUNCATE 删除表 ROUNDROBIN表 RENAME 重命名表名 设置与清除列默认值 字段名重命名 行列存压缩 添加与删除列 父主题: 模式对象与数据定义(DDL)
  • COMMENT语句 输入 输出 CREATE MULTISET TABLE PDAT.t_tbl_comment ( Data_Dt DATE NOT NULL ,Data_Src VARCHAR(4) NOT NULL ,List_Make_Stat CHAR(1) ) PRIMARY INDEX(Data_Dt,Data_Src) ; COMMENT ON PDAT.t_tbl_comment IS 'comment test on table'; --------------- REPLACE VIEW PVW.v_vw_comment AS LOCKING ROW FOR ACCESS SELECT Data_Dt, Data_Src, List_Make_Stat FROM PDAT.t_tbl_comment; COMMENT ON PVW.v_vw_comment IS 'comment test on view'; COMMENT ON PVW.v_vw_comment.Data_Dt IS 'comment test on view column'; COMMENT ON TABLE PDAT.t_tbl_comment IS 'comment test on table'; COMMENT ON VIEW PVW.v_vw_comment IS 'comment test on view'; COMMENT ON COLUMN PVW.v_vw_comment.Data_Dt IS 'comment test on view column'; 父主题: 模式对象与数据定义(DDL)
共100000条