华为云用户手册

  • 示例 重命名数据类型: 1 ALTER TYPE compfoo RENAME TO compfoo1; 修改用户定义类型compfoo1的所有者为usr1: 1 ALTER TYPE compfoo1 OWNER TO usr1; 把用户定义类型compfoo1的模式改为usr1: 1 ALTER TYPE compfoo1 SET SCHEMA usr1; 给数据类型compfoo1增加一个新的属性f3: 1 ALTER TYPE compfoo1 ADD ATTRIBUTE f3 int; 给枚举类型bugstatus添加一个标签值: 1 ALTER TYPE bugstatus ADD VALUE IF NOT EXISTS 'regress' BEFORE 'closed'; 重命名枚举类型bugstatus的一个标签值: 1 ALTER TYPE bugstatus RENAME VALUE 'create' TO 'new';
  • 参数说明 name 一个需要修改的现有的类型的名字(可以有模式修饰) 。 new_name 该类型的新名称。 new_owner 新所有者的用户名 。 new_schema 该类型的新模式 。 attribute_name 拟增加、更改或删除的属性的名称。 new_attribute_name 拟改名的属性的新名称。 data_type 拟新增属性的数据类型,或是拟更改的属性的新类型名。 new_enum_value 枚举类型新增加的标签值,是一个非空的长度不超过64个字节的字符串。 neighbor_enum_value 一个已有枚举标签值,新值应该被增加在紧接着该枚举值之前或者之后的位置上。 existing_enum_value 现有的要重命名的枚举值,是一个非空的长度不超过64个字节的字符串 CASCADE 自动级联更新需更新类型以及相关联的记录和继承它们的子表。 RESTRICT 如果需联动更新类型是已更新类型的关联记录,则拒绝更新。这是缺省选项。 ADD ATTRIBUTE、DROP ATTRIBUTE和ALTER ATTRIBUTE选项可以组合成一个列表同时执行。 例如,在一条命令中同时增加多个属性或是更改多个属性的类型。 要使用ALTER TYPE,必须是该类型的所有者。 要修改类型的模式,还必须在新模式上拥有CREATE权限。 要修改所有者,必须是新的所有角色的直接或间接成员, 并且该角色必须在此类型的模式上有CREATE权限。 (这些限制强制要求修改所有者不能执行任何通过删除和重建该类型无法实现的操作。 不过,系统管理员拥有以任何方式修改任意类型的所有权。) 要增加一个属性或是修改一个属性的类型,也必须有该类型的USAGE权限。
  • 语法格式 修改类型 1 2 3 4 5 6 7 8 9 10 11 12 ALTER TYPE name action [, ... ] ALTER TYPE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER } ALTER TYPE name RENAME ATTRIBUTE attribute_name TO new_attribute_name [ CASCADE | RESTRICT ] ALTER TYPE name RENAME TO new_name ALTER TYPE name SET SCHEMA new_schema ALTER TYPE name ADD VALUE [ IF NOT EXISTS ] new_enum_value [ { BEFORE | AFTER } neighbor_enum_value ] ALTER TYPE name RENAME VALUE existing_enum_value TO new_enum_value where action is one of: ADD ATTRIBUTE attribute_name data_type [ COLLATE collation ] [ CASCADE | RESTRICT ] DROP ATTRIBUTE [ IF EXISTS ] attribute_name [ CASCADE | RESTRICT ] ALTER ATTRIBUTE attribute_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ CASCADE | RESTRICT ] 给复合类型增加新的属性。 1 ALTER TYPE name ADD ATTRIBUTE attribute_name data_type [ COLLATE collation ] [ CASCADE | RESTRICT ]
  • pgxc_stat_xlog_space() 描述:显示所有主DN上Xlog空间使用信息。 返回值类型:record 函数返回信息如下: 表7 pgxc_stat_xlog_space() 名称 类型 描述 node_name name 节点名称 xlog_files bigint pg_xlog目录下,去除backup、archive_status等子目录,所有识别为xlog文件的数目。 xlog_size bigint pg_xlog目录下,去除backup、archive_status等子目录,所有识别为xlog文件的文件大小之和,单位为MB。 other_size bigint pg_xlog目录下backup、archive_status等子目录文件的大小之和,单位为MB。 示例: 1 2 3 4 5 6 7 8 9 10 SELECT * FROM pgxc_stat_xlog_space(); node_name | xlog_files | xlog_size | other_size --------------+------------+-----------+------------ dn_6001_6002 | 73 | 1168 | 0 dn_6003_6004 | 73 | 1168 | 0 dn_6005_6006 | 73 | 1168 | 0 cn_5003 | 79 | 1264 | 0 cn_5001 | 72 | 1152 | 0 cn_5002 | 73 | 1168 | 0 (6 rows)
  • pg_stat_get_stream_replications() 描述:显示当前DN上所有的复制统计信息。 返回值类型:record 函数返回信息如下: 表5 pg_stat_get_stream_replications() 名称 类型 描述 local_role text 本地的角色 static_connections integer 连接统计 db_state text 数据库状态 detail_information text 详细信息 示例: 1 2 3 4 5 SELECT * FROM pg_stat_get_stream_replications(); local_role | static_connections | db_state | detail_information ------------+--------------------+----------+-------------------- Normal | 0 | Normal | Normal (1 row)
  • pg_stat_xlog_space() 描述:显示当前DN上Xlog空间使用信息。 返回值类型:record 函数返回信息如下: 表6 pg_stat_xlog_space() 名称 类型 描述 xlog_files bigint pg_xlog目录下,去除backup、archive_status等子目录,所有识别为xlog文件的数目。 xlog_size bigint pg_xlog目录下,去除backup、archive_status等子目录,所有识别为xlog文件的文件大小之和,单位为MB。 other_size bigint pg_xlog目录下backup、archive_status等子目录文件的大小之和,单位为MB。 示例: 1 2 3 4 5 SELECT * FROM pg_stat_xlog_space(); xlog_files | xlog_size | other_size ------------+-----------+------------ 79 | 1264 | 0 (1 row)
  • pg_stat_get_wal_receiver() 描述:显示当前DN上所有的WAL复制接收线程的统计信息。 返回值类型:record 函数返回信息如下: 表4 pg_stat_get_wal_receiver() 名称 类型 描述 receiver_pid integer 当前receiver的pid local_role text 本地的角色 peer_role text 远端的角色 peer_state text 远端的状态 state text 当前receiver的复制状态 sender_sent_location text 发送端发送的LSN位置 sender_write_location text 发送端write的LSN位置 sender_flush_location text 发送端flush的LSN位置 sender_replay_location text 发送端replay的LSN位置 receiver_received_location text 接收端received的LSN位置 receiver_write_location text 接收端write的LSN位置 receiver_flush_location text 接收端flush的LSN位置 receiver_replay_location text 接收端replay的LSN位置 sync_percent text 同步百分比 channel text WALReceiver的信道信息
  • pg_stat_get_wal_senders() 描述:显示当前DN上所有的WAL复制发送线程的统计信息。 返回值类型:record 函数返回信息如下: 表3 pg_stat_get_wal_senders()字段 名称 类型 描述 pid bigint 线程pid sender_pid integer 当前sender的pid local_role text 本地的角色 peer_role text 对端的角色 peer_state text 对端的状态 state text 当前sender的复制状态 catchup_start timestamp with time zone catchup启动的时间 catchup_end timestamp with time zone catchup结束的时间 sender_sent_location text 发送端发送的LSN位置 sender_write_location text 发送端write的LSN位置 sender_flush_location text 发送端flush的LSN位置 sender_replay_location text 发送端replay的LSN位置 receiver_received_location text 接收端received的LSN位置 receiver_write_location text 接收端write的LSN位置 receiver_flush_location text 接收端flush的LSN位置 receiver_replay_location text 接收端replay的LSN位置 sync_percent text 同步百分比 sync_state text 同步状态(异步复制,同步复制,还是潜在同步者) sync_priority integer 同步复制的优先级(0表示异步) sync_most_available text 在备机同步失败时,是否阻塞主机 channel text WALSender的信道信息
  • pg_get_replication_slots() 描述:显示当前DN上所有的复制槽信息。 返回值类型:record 函数返回信息如下: 表1 pg_get_replication_slots()字段 名称 类型 描述 slot_name text 复制槽的名称 plugin name 逻辑复制槽对应的输出插件名 slot_type text 复制槽的类型 datoid oid 复制槽的数据库OID active boolean 复制槽是否为激活状态 xmin xid 复制槽事务标识 catalog_xmin text 逻辑复制槽对应的最早解码事务标识 restart_lsn text 复制槽的Xlog文件信息 dummy_standby boolean 复制槽是否为从备 示例: 1 2 3 4 5 SELECT * FROM pg_get_replication_slots(); slot_name | plugin | slot_type | datoid | active | xmin | catalog_xmin | restart_lsn | dummy_standby -----------------+--------+-----------+--------+--------+------+--------------+-------------------+--------------- gs_roach_common | | physical | 0 | f | | 602861775 | FFFFFFFF/FFFFFFFF | f (1 row)
  • pg_create_logical_replication_slot('slot_name', 'plugin_name') 描述:创建逻辑复制槽。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,不支持除字母,数字,以及(_?-.)以外的字符。 plugin_name 插件名称。 取值范围:字符串,当前只支持“mppdb_decoding”。 返回值类型:name, text 备注:第一个返回值表示slot_name,第二个返回值表示该逻辑复制槽解码的起始LSN位置。
  • pg_logical_slot_peek_changes('slot_name', 'LSN', upto_nchanges, 'options_name', 'options_value') 描述:解码并不推进流复制槽(下次解码可以再次获取本次解出的数据)。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,不支持除字母,数字,以及(_?-.)以外的字符。 LSN 日志的LSN,表示只解码小于等于此LSN的日志。 取值范围:字符串(LSN,格式为xlogid/xrecoff),如'1/2AAFC60'。为NULL时表示不对解码截止的日志位置做限制。 upto_nchanges 解码条数(包含begin和commit)。假设一共有三条事务,分别包含3、5、7条记录,如果upto_nchanges为4,那么会解码出前两个事务共8条记录。解码完第二条事务时发现解码条数记录大于等于upto_nchanges,会停止解码。 取值范围:非负整数。 LSN和upto_nchanges中任一参数达到限制,解码都会结束。 options:此项为可选参数。 include-xids 解码出的data列是否包含xid信息。 取值范围:0或1,默认值为1。 0:设为0时,解码出的data列不包含xid信息。 1:设为1时,解码出的data列包含xid信息。 skip-empty-xacts 解码时是否忽略空事务信息。 取值范围:0或1,默认值为0。 0:设为0时,解码时不忽略空事务信息。 1:设为1时,解码时会忽略空事务信息。 include-timestamp 解码信息是否包含commit时间戳。 取值范围:0或1,默认值为0。 0:设为0时,解码信息不包含commit时间戳。 1:设为1时,解码信息包含commit时间戳。 返回值类型:text, uint, text 备注:函数返回解码结果,每一条解码结果包含三列,对应上述返回值类型,分别表示LSN位置、xid和解码内容。
  • pg_logical_slot_get_changes('slot_name', 'LSN', upto_nchanges, 'options_name', 'options_value') 描述:解码并推进流复制槽。 参数说明: 与pg_logical_slot_peek_changes一致,详细内容请参见pg_logical_slot_peek_changes('slot_name', 'LSN', upto_nchanges, 'options_name', 'options_value')。
  • pg_create_physical_replication_slot ('slot_name', isDummyStandby) 描述:创建物理复制槽。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,不支持除字母,数字,以及(_?-.)以外的字符。 isDummyStandby 复制槽是否为从备。 取值范围:布尔值,支持true或false。 返回值类型:name, text 备注:第一个返回值表示slot_name,第二个返回值表示该物理复制槽解码的起始LSN位置。
  • pg_replication_slot_advance ('slot_name', 'LSN') 描述:直接推进流复制槽到指定LSN,不输出解码结果。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,不支持除字母,数字,以及(_?-.)以外的字符。 LSN 推进到的日志LSN位置,下次解码时只会输出提交位置比该LSN大的事务结果。如果输入的LSN比当前流复制槽记录的推进位置还要小,则直接返回;如果输入的LSN比当前最新物理日志LSN还要大,则推进到当前最新物理日志LSN。 取值范围:字符串(LSN,格式为xlogid/xrecoff)。 返回值类型:name, text 备注:返回值分别对应slot_name和实际推进至的LSN。
  • pg_stat_get_data_senders() 描述:显示当前DN上所有的数据页复制发送线程的统计信息。 返回值类型:record 函数返回信息如下: 表2 pg_stat_get_data_senders()字段 名称 类型 描述 pid bigint 线程pid sender_pid integer 当前sender的pid local_role text 本地的角色 peer_role text 对端的角色 state text 当前sender的复制状态 catchup_start timestamp with time zone catchup启动的时间 catchup_end timestamp with time zone catchup结束的时间 queue_size text 数据队列大小 queue_lower_tail text 数据队列尾1位置 queue_header text 数据队列头位置 queue_upper_tail text 数据队列尾2位置 send_position text 发送端发送的位置 receive_position text 接收端接收的位置 catchup_type text catchup方式为全量还是增量 catchup_bcm_filename text catchup当前执行的bcm文件 catchup_bcm_finished integer catchup已操作完成的bcm文件数量 catchup_bcm_total integer catchup总共需要操作的bcm文件数量 catchup_percent text catchup已经操作完成的百分比 catchup_remaining_time text catchup预估剩余时间
  • ON DUPLICATE KEY UPDATE INSERT使用ON DUPLICATE KEY UPDATE子句可以使现有行更新。 输入示例 1 2 3 4 5 #ON DUPLICATE KEY UPDATE 若该数据的主键值/ UNIQUE KEY 已经在表中存在,则执行更新操作, 即UPDATE;否则执行插入操作 INSERT INTO exmp_tb2(tb2_id,tb2_price) VALUES(3,12.3) ON DUPLICATE KEY UPDATE tb2_price=12.3; INSERT INTO exmp_tb2(tb2_id,tb2_price) VALUES(4,12.3) ON DUPLICATE KEY UPDATE tb2_price=12.3; INSERT INTO exmp_tb2(tb2_id,tb2_price,tb2_note) VALUES(10,DEFAULT,DEFAULT) ON DUPLICATE KEY UPDATE tb2_price=66.6; INSERT INTO exmp_tb2(tb2_id,tb2_price,tb2_note,tb2_date) VALUES(11,DEFAULT,DEFAULT,DEFAULT) ON DUPLICATE KEY UPDATE tb2_price=66.6; 输出示例 1 2 3 4 5 --ON DUPLICATE KEY UPDATE 若该数据的主键值/ UNIQUE KEY 已经在表中存在,则执行更新操作, 即UPDATE;否则执行插入操作 INSERT INTO "public"."exmp_tb2" ("tb2_id","tb2_price") VALUES (3,12.3); INSERT INTO "public"."exmp_tb2" ("tb2_id","tb2_price") VALUES (4,12.3); INSERT INTO "public"."exmp_tb2" ("tb2_id","tb2_price","tb2_note") VALUES (10,DEFAULT,DEFAULT); INSERT INTO "public"."exmp_tb2" ("tb2_id","tb2_price","tb2_note","tb2_date") VALUES (11,DEFAULT,DEFAULT,DEFAULT); 父主题: INSERT
  • 语法格式 从一个文件拷贝数据到一个表: 1 2 3 4 5 6 7 8 9 10 COPY table_name [ ( column_name [, ...] ) ] FROM { 'filename' | STDIN } [ [ USING ] DELIMITERS 'delimiters' ] [ WITHOUT ESCAPING ] [ LOG ERRORS ] [ LOG ERRORS data ] [ REJECT LIMIT 'limit' ] [ [ WITH ] ( option [, ...] ) ] | copy_option | FIXED FORMATTER ( { column_name( offset, length ) } [, ...] ) [ ( option [, ...] ) | copy_option [ ...] ] ]; 语法中的FIXED FORMATTER ( { column_name( offset, length ) } [, ...] )以及 [ ( option [, ...] ) | copy_option [ ...] ] 可以任意排列组合。 把一个表的数据拷贝到一个文件: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 COPY table_name [ ( column_name [, ...] ) ] TO { 'filename' | STDOUT } [ [ USING ] DELIMITERS 'delimiters' ] [ WITHOUT ESCAPING ] [ [ WITH ] ( option [, ...] ) ] | copy_option | FIXED FORMATTER ( { column_name( offset, length ) } [, ...] ) [ ( option [, ...] ) | copy_option [ ...] ] ]; COPY query TO { 'filename' | STDOUT } [ WITHOUT ESCAPING ] [ [ WITH ] ( option [, ...] ) ] | copy_option | FIXED FORMATTER ( { column_name( offset, length ) } [, ...] ) [ ( option [, ...] ) | copy_option [ ...] ] ]; COPY TO语法形式约束如下: (query)与[USING] DELIMITER不兼容,即若COPY TO的数据来自于一个query的查询结果,那么COPY TO语法不能再指定[USING] DELIMITERS语法子句。 对于FIXED FORMATTTER语法后面跟随的copy_option是以空格进行分隔的。 copy_option是指COPY原生的参数形式,而option是兼容外表导入的参数形式。 语法中的FIXED FORMATTER ( { column_name( offset, length ) } [, ...] )以及 [ ( option [, ...] ) | copy_option [ ...] ] 可以任意排列组合。 其中可选参数option子句语法为: 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 FORMAT 'format_name' | OIDS [ boolean ] | DELIMITER 'delimiter_character' | NULL 'null_string' | HEADER [ boolean ] | FILEHEADER 'header_file_string' | FREEZE [ boolean ] | QUOTE 'quote_character' | ESCAPE 'escape_character' | EOL 'newline_character' | NOESCAPING [ boolean ] | FORCE_QUOTE { ( column_name [, ...] ) | * } | FORCE_NOT_NULL ( column_name [, ...] ) | ENCODING 'encoding_name' | IGNORE_EXTRA_DATA [ boolean ] | FILL_MISSING_FIELDS [ boolean ] | COMPATIBLE_ILLEGAL_CHARS [ boolean ] | PRESERVE_BLANKS [ boolean ] | DATE_FORMAT 'date_format_string' | TIME_FORMAT 'time_format_string' | TIMESTAMP_FORMAT 'timestamp_format_string' | SMALLDATETIME_FORMAT 'smalldatetime_format_string' | SERVER 'obs_server_string' | BOM [ boolean ] | MAXROW [ integer ] | FILEPREFIX 'file_prefix_string' 其中可选参数copy_option子句语法为: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 OIDS | NULL 'null_string' | HEADER | FILEHEADER 'header_file_string' | FREEZE | FORCE_NOT_NULL column_name [, ...] | FORCE_QUOTE { column_name [, ...] | * } | BINARY | CSV | QUOTE [ AS ] 'quote_character' | ESCAPE [ AS ] 'escape_character' | EOL 'newline_character' | ENCODING 'encoding_name' | IGNORE_EXTRA_DATA | FILL_MISSING_FIELDS | COMPATIBLE_ILLEGAL_CHARS | PRESERVE_BLANKS | DATE_FORMAT 'date_format_string' | TIME_FORMAT 'time_format_string' | TIMESTAMP_FORMAT 'timestamp_format_string' | SMALLDATETIME_FORMAT 'smalldatetime_format_string'
  • 示例 将tpcds.ship_mode中的数据拷贝到/home/omm/ds_ship_mode.dat文件中: 1 COPY tpcds.ship_mode TO '/home/omm/ds_ship_mode.dat'; 将tpcds.ship_mode 输出到stdout: 1 COPY tpcds.ship_mode TO stdout; 创建tpcds.ship_mode_t1表: 1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE tpcds.ship_mode_t1 ( SM_SHIP_MODE_SK INTEGER NOT NULL, SM_SHIP_MODE_ID CHAR(16) NOT NULL, SM_TYPE CHAR(30) , SM_CODE CHAR(10) , SM_CARRIER CHAR(20) , SM_CONTRACT CHAR(20) ) WITH (ORIENTATION = COLUMN,COMPRESSION=MIDDLE) DISTRIBUTE BY HASH(SM_SHIP_MODE_SK ); 从stdin拷贝数据到表tpcds.ship_mode_t1: 1 COPY tpcds.ship_mode_t1 FROM stdin; 从/home/omm/ds_ship_mode.dat文件拷贝数据到表tpcds.ship_mode_t1: 1 COPY tpcds.ship_mode_t1 FROM '/home/omm/ds_ship_mode.dat'; 从/home/omm/ds_ship_mode.dat文件拷贝数据到表tpcds.ship_mode_t1,使用参数如下:导入格式为TEXT(format 'text'),分隔符为'\t'(delimiter E'\t'),忽略多余列(ignore_extra_data 'true'),不指定转义(noescaping 'true'): 1 COPY tpcds.ship_mode_t1 FROM '/home/omm/ds_ship_mode.dat' WITH(format 'text', delimiter E'\t', ignore_extra_data 'true', noescaping 'true'); 从/home/omm/ds_ship_mode.dat文件拷贝数据到表tpcds.ship_mode_t1,使用参数如下:导入格式为FIXED(FIXED),指定定长格式(FORMATTER(SM_SHIP_MODE_SK(0, 2), SM_SHIP_MODE_ID(2,16), SM_TYPE(18,30), SM_CODE(50,10), SM_CARRIER(61,20), SM_CONTRACT(82,20))),忽略多余列(ignore_extra_data),有数据头(header): 1 COPY tpcds.ship_mode_t1 FROM '/home/omm/ds_ship_mode.dat' FIXED FORMATTER(SM_SHIP_MODE_SK(0, 2), SM_SHIP_MODE_ID(2,16), SM_TYPE(18,30), SM_CODE(50,10), SM_CARRIER(61,20), SM_CONTRACT(82,20)) header ignore_extra_data; 从/home/omm/ds_ship_mode.dat文件拷贝数据到表tpcds.ship_mode_t1,使用参数如下:导入格式为FIXED(FIXED),指定定长格式(FORMATTER(SM_SHIP_MODE_SK(0, 2), SM_SHIP_MODE_ID(2,16), SM_TYPE(18,30), SM_CODE(50,10), SM_CARRIER(61,20), SM_CONTRACT(82,20))),忽略多余列(ignore_extra_data),有数据头(header),保留末尾 \t 字符: COPY tpcds.ship_mode_t1 FROM '/home/omm/ds_ship_mode.dat' (FORMAT 'fixed', FORMATTER (SM_SHIP_MODE_SK(0,2), SM_SHIP_MODE_ID(2,16), SM_TYPE(18,30), SM_CODE(50,10), SM_CARRIER(61,20), SM_CONTRACT(82,20)), PRESERVE_BLANKS‘true', HEADER 'true', IGNORE_EXTRA_DATA 'true'); 将tpcds.ship_mode_t1导出为OBS的 '/bucket/path/'路径上的TEXT格式文件ds_ship_mode.dat。需要指定包含OBS访问信息的“server”option参数: 1 COPY tpcds.ship_mode_t1 TO '/bucket/path/ds_ship_mode.dat' WITH (format 'text', encoding 'utf8', server 'obs_server'); 将tpcds.ship_mode_t1导出为OBS的 '/bucket/path/'路径上的的CSV格式文件。需要指定包含OBS访问信息的“server”option参数。其中文件包含标题行,包含BOM头,单文件最大行数1000行(超出1000行生成新的文件),自定义文件名前缀为“justprefix”: 1 COPY (select * from tpcds.ship_mode_t1 where SM_SHIP_MODE_SK=1060) TO '/bucket/path/' WITH (format 'csv', header 'on', encoding 'utf8', server 'obs_server', bom 'on', maxrow '1000', fileprefix 'justprefix'); 删除tpcds.ship_mode_t1: 1 DROP TABLE tpcds.ship_mode_t1;
  • 注意事项 以安全模式(云上安全模式不支持关闭)启动CN、DN的开关,那么当前模式下禁止使用COPY FROM FILENAME或COPY TO FILENAME语法,可采用\copy的方式进行规避,请参考如何使用\copy导入导出中的示例。 COPY只能用于表,不能用于视图。 对任何要插入数据的表必须有插入权限。 如果声明了一个字段列表,COPY将只在文件和表之间拷贝已声明字段的数据。如果表中有任何不在字段列表里的字段,COPY FROM将为那些字段插入缺省值。 如果声明了数据源文件,服务器必须可以访问该文件;如果指定了STDIN,数据将在客户前端和服务器之间流动,输入时,表的列与列之间使用TAB键分隔,在新的一行中以反斜杠和句点(\.)表示输入结束。 如果数据文件的任意行包含比预期多或者少的字段,COPY FROM将抛出一个错误。 数据的结束可以用一个只包含反斜杠和句点(\.)的行表示。如果从文件中读取数据,数据结束的标记是不必要的;如果在客户端应用之间拷贝数据,必须要有结束标记。 COPY FROM中\N为空字符串,如果要输入实际数据值\N ,使用\\N。
  • 参数说明 name 待修改的订阅的名称。 取值范围:字符串,符合标识符命名规范。 CONNECTION 'conninfo' 该子句修改最初由CREATE SUBSCRIPTION设置的连接属性。 详细的参数说明参考conninfo参数说明。 publication_name 新发布的名称。 取值范围:字符串,符合标识符命名规范。 ENABLE 启用先前禁用的订阅,在事务结束时启动逻辑复制工作。 DISABLE 禁用正在运行的订阅,在事务结束时停止逻辑复制工作。 SET ( publication_parameter [= value] [, ... ] ) 该子句修改最初由CREATE PUBLICATION设置的发布参数。详细的参数说明请参考CREATE SUBSCRIPTION的参数说明。 new_owner 订阅新所有者的用户名称。 new_name 订阅的新名称。
  • 语法格式 更新订阅的连接信息。 1 ALTER SUBSCRIPTION name CONNECTION 'conninfo' 更新订阅的发布端的发布名称。 1 ALTER SUBSCRIPTION name SET PUBLICATION publication_name [, ...] 激活订阅。 1 ALTER SUBSCRIPTION name ENABLE 禁用订阅。 1 ALTER SUBSCRIPTION name DISABLE 设置订阅的参数。 1 ALTER SUBSCRIPTION name SET ( subscription_parameter [= value] [, ... ] ) 更改订阅的所有者。 1 ALTER SUBSCRIPTION name OWNER TO new_owner
  • 语法 检查命令 gds_check -t check --host [/path/to/hostfile | ipaddr1,ipaddr2...] --ping-host [/path/to/pinghostfile | ipaddr1,ipaddr2...] [--detail] 修复命令 gds_check -t fix --host [/path/to/hostfile | ipaddr1,ipaddr2...] [--detail]
  • 参数说明 -t 操作类型,表示检查/修复。 取值:check,fix。 --host 需要检查/修复的节点IP列表。 取值:IP列表,支持文件和字符串两种形式。 文件形式:每一行一个IP地址,如: 192.168.1.200 192.168.1.201 字符串形式:半角逗号分隔,如: 192.168.1.200,192.168.1.201 --ping-host 在各检查节点上进行网络ping检查的目标地址。 取值:IP列表,支持文件和字符串两种形式,一般是DN、CN、网关的IP地址。 文件形式:每一行一个IP地址,如: 192.168.2.200 192.168.2.201 字符串形式:半角逗号分隔,如: 192.168.2.200,192.168.2.201 --detail 显示检查/修复项详细信息,并存入日志。 -V 显示版本信息。 -h, --help 显示帮助信息。
  • 示例 执行检查,--host、--ping-host均为IP字符串形式: gds_check -t check --host 192.168.1.100,192.168.1.101 --ping-host 192.168.2.100 执行检查,--host为字符串,--ping-host为文件形式: gds_check -t check --host 192.168.1.100,192.168.1.101 --ping-host /home/gds/iplist cat /home/gds/iplist 192.168.2.100 192.168.2.101 执行检查,--host为文件形式,--ping-host为字符串: gds_check -t check --host /home/gds/iplist --ping-host 192.168.1.100,192.168.1.101 执行修复,--host为字符串: gds_check -t fix --host 192.168.1.100,192.168.1.101 执行检查,打印详细信息,并存入日志: gds_check -t check --host 192.168.1.100 --detail 执行修复,打印详细信息,并存入日志: gds_check -t fix --host 192.168.1.100 --detail
  • add_months(d,n) 描述:用于计算时间点d再加上n个月的时间。 返回值类型:timestamp 示例: 1 2 3 4 5 SELECT add_months(to_date('2017-5-29', 'yyyy-mm-dd'), 11) FROM dual; add_months --------------------- 2018-04-29 00:00:00 (1 row)
  • last_day(d) 描述:用于计算时间点d本月最后一天的时间。 ORA和TD兼容模式下,返回值类型为timestamp。 MySQL兼容模式下,返回值类型为date。 示例: 1 2 3 4 5 select last_day(to_date('2017-01-01', 'YYYY-MM-DD')) AS cal_result; cal_result --------------------- 2017-01-31 00:00:00 (1 row)
  • next_day(x,y) 描述:用于计算x时间开始的下一个星期y的时间。 ORA和TD兼容模式下,返回值类型为timestamp。 MySQL兼容模式下,返回值类型为date。 示例: 1 2 3 4 5 select next_day(timestamp '2017-05-25 00:00:00','Sunday')AS cal_result; cal_result --------------------- 2017-05-28 00:00:00 (1 row)
  • unix_timestamp([timestamp with time zone]) 描述:获取从'1970-01-01 00:00:00'UTC到入参时间经历的秒数。无入参时,指定为当前时间。 返回值类型:bigint(无入参)/numeric(有入参) 示例: 1 2 3 4 5 SELECT unix_timestamp(); unix_timestamp ---------------- 1693906219 (1 row) 1 2 3 4 5 SELECT unix_timestamp('2018-09-08 12:11:13+06'); unix_timestamp ---------------- 1536387073.000000 (1 row)
  • timeofday() 描述:当前日期及时间(像clock_timestamp,但是返回时为text。) 返回值类型:text 示例: 1 2 3 4 5 SELECT timeofday(); timeofday ------------------------------------- Fri Sep 01 17:05:01.167506 2017 CST (1 row)
  • transaction_timestamp() 描述:当前日期及时间,与current_timestamp等效。 返回值类型:timestamp with time zone 示例: 1 2 3 4 5 SELECT transaction_timestamp(); transaction_timestamp ------------------------------- 2017-09-01 17:05:13.534454+08 (1 row)
共100000条