华为云用户手册

  • disable_plsql_keyword_options 参数说明:用于将设置的标识符当作非关键字使用。数据库兼容性行为配置项,该参数的值由若干个配置项用逗号隔开构成。多租场景下,该参数可在PDB级别设置。 参数类型:字符串 参数单位:无 取值范围:支持的配置项包括PIPE、PIPELINED、RANGE、REPLACE、SUBTYPE。 默认值:""。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。 该参数打开后,作为关键字使用的部分功能会失效,请谨慎使用。 如需取消屏蔽plsql关键字功能,请将该参数设置为空值。
  • enable_copy_error_log 参数说明:控制gs_loader使用错误表pgxc_copy_error_log的开启和关闭。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启错误表。 off:表示关闭错误表。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • enable_union_all_order 参数说明:控制UNION ALL在主查询未排序的的情况下,是否支持子查询保序。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启。 off:表示关闭。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • enable_object_special_character 参数说明:控制执行CREATE EXTENSION语句时,若脚本文件中使用"@extschema@",此时control文件中schema参数的值是否可以包含["$'\]中任意特殊字符。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启,可以包含["$'\]中任意特殊字符。 off:表示关闭,不可以包含["$'\]中任意特殊字符。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:扩展功能为内部使用功能,不建议用户使用。 设置不当的风险与影响:修改该参数取值可能导致数据库出现意料之外的结果,请保持默认值。
  • a_format_disable_func 参数说明:禁用指定的系统函数。该参数的值由若干个系统函数OID值用逗号隔开组成。设置该参数的系统函数将不能被调用。当某一系统函数不能满足用户需求并且需要使用相同函数名的自定义函数时,可使用该功能。该参数可在PDB级别设置。 参数类型:字符串 参数单位:无 取值范围:字符串,由若干个系统函数OID值用逗号隔开组成。 默认值:""。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • td_compatible_truncation 参数说明:控制是否开启与TD数据库相应兼容的特征。在用户连接上与TD兼容的数据库时,可以将参数设置成为on(即超长字符串自动截断功能启用),该功能启用后,在后续的insert语句中,对目标表中char和varchar类型的列插入超长字符串时,会按照目标表中相应列定义的最大长度对超长字符串进行自动截断。保证数据都能插入目标表中,而不是报错。该参数可在PDB级别设置。 超长字符串自动截断功能不适用于insert语句包含外表的场景。 如果向字符集为字节类型编码(SQL_ASCII、LATIN1等)的数据库中插入多字节字符数据(如汉字等),且字符数据跨越截断位置,这种情况下,按照字节长度自动截断,自动截断后会在尾部产生非预期结果。如果用户有对于截断结果正确性的要求,建议用户采用UTF8等能够按照字符截断的输入字符集作为数据库的编码集。 参数类型:布尔型 参数单位:无 取值范围: on:表示打开超长字符串自动截断功能。 off:表示关闭超长字符串自动截断功能。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • enable_volatile_match_index 参数说明:控制volatile类型函数是否可以匹配索引,仅在DBCOMPATIBILITY为A的数据库中生效。volatile函数匹配索引存在语义风险,stable、immutable函数默认可以匹配索引,且符合语义。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启。 off:表示关闭。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据函数实际易变性进行设置。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • plpgsql.variable_conflict 参数说明:设置同名的存储过程变量和表的列的使用优先级。 参数类型:字符串 参数单位:无 取值范围: error:表示遇到存储过程变量和表的列名同名则编译报错。 use_variable:表示存储过程变量和表的列名同名则优先使用变量。 use_column:表示存储过程变量和表的列名同名则优先使用列名。 默认值:error 设置方式:该参数属于USERSET类型参数,仅支持表1中对应设置方法3进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • uppercase_attribute_name 参数说明:设置列名以大写形式返回给客户端。该参数仅限于A兼容模式下使用。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示列名以大写形式返回给客户端。 off:表示列名不以大写形式返回给客户端。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • enable_immutable_optimization 参数说明:控制immutable类型函数是否可以被优化执行,仅在DBCOMPATIBILITY为A的数据库中生效。如果带有immutable定义的函数违反immutable语义,则其调用结果、其值以及对其调用者的影响均未定义。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启。 off:表示关闭。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • disable_keyword_options 参数说明:数据库兼容性行为配置项,该参数的值由若干个配置项用逗号隔开构成。设置该参数的标识符将不会作为关键字使用。该参数可在PDB级别设置。 参数类型:字符串 参数单位:无 取值范围: 非M-Compatibility模式数据库下,支持设置以下关键字:advanced、auto_increment、change、charset、columns、colview、compile、completion、containing、convert、csn、datetime、days、db4aishot、dbtimezone、delete_all、disable_all、discard_path、distributed、dumpfile、enable_all、ends、entityescaping、escaped、evalname、event、events、expdp、extend、finish、gsiusable、gsivalid、gsiwaitall、high、ifnull、ilm、ilm_pidx_list、imcvtable、impdp、invisible、json_object、lines、link、lnnvl、load_discard、locked、low、mark、modification、months、nocache、nocolview、noentityescaping、noextend、noscale、nvl2、ordinality、outfile、performance、pivot、populate、priority、public、recover、regexp、regexp_like、rlike、scale、schedule、separator、sessiontimezone、shrink、slave、specification、starting、starts、subpartitions、substr、unpivot、verify、visible、wellformed、xmltype、years、zerofill。 M-Compatibility模式数据库下,支持设置以下关键字:active、admin、array、authentication、buckets、bulk、challenge_response、clone、colview、component、cume_dist、definition、dense_rank、description、empty、enforced、engine_attribute、except、exclude、factor、failed_login_attempts、finish、first_value、following、force、generate、geomcollection、get_master_public_key、get_source_public_key、grouping、groups、gtid_only、high、histogram、history、imcvtable、inactive、initial、initiate、intersect、invisible、json_table、json_value、keyring、lag、last_value、lateral、lc_collate、lead、least、load_bad、load_discard、location、locked、low、master_compression_algorithms、master_public_key_path、master_tls_ciphersuites、master_zstd_compression_level、match、member、minvalue、move、nested、nocolview、nocycle、node、nomaxvalue、nominvalue、nowait、nth_value、ntile、nulls、nvl、nvl2、of、off、oids、oj、old、operator、optional、ordinality、organization、others、over、owned、password_lock_time、path、percent_rank、persist、persist_only、populate、preceding、prepared、priority、privilege_checks_user、process、random、rank、recursive、recyclebin、reference、registration、reindex、reject、relative、replica、replicas、require_row_format、resource、respect、restart、retain、returning、reuse、role、row_number、scroll、secondary、secondary_engine、secondary_engine_attribute、secondary_load、secondary_unload、sequence、setof、shippable、size、skip、slice、smalldatetime、smalldatetime_format、source_auto_position、source_bind、source_compression_algorithms、source_connect_retry、source_delay、source_heartbeat_period、source_host、source_log_file、source_log_pos、source_password、source_port、source_public_key_path、source_retry_count、source_ssl、source_ssl_ca、source_ssl_capath、source_ssl_cert、source_ssl_cipher、source_ssl_crl、source_ssl_crlpath、source_ssl_key、source_ssl_verify_server_cert、source_tls_ciphersuites、source_tls_version、source_user、source_zstd_compression_level、split、srid、stable、stdin、stdout、stream、strict、substring、sysdate、system、thread_priority、ties、tls、trim、unbounded、unregister、unusable、url、vacuum、valid、varchar2、vcpu、verbose、version、visible、window、within、xmlattributes、xmlconcat、xmlelement、xmlforest、xmlpi、xmlroot、xmltype、zone。 默认值: 非M-Compatibility模式数据库下:"datetime,regexp,rlike,zerofill"。 M-Compatibility模式数据库下:""。 在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:该参数打开后,作为关键字使用的部分功能会失效,请谨慎使用。如果要屏蔽的关键字在当前兼容模式数据库的待屏蔽关键字数组里不存在,其他兼容模式数据库里存在时,则产生WARNING;如果其他兼容模式数据库里也不存在,则产生ERROR。 B兼容模式下,datetime、regexp、rlike、zerofill是否作为保留关键字由系统确定,用户无法修改和删除。具体情况为:初始状态下系统会将datetime、regexp、rlike、zerofill添加到参数disable_keyword_options中,此时datetime、regexp、rlike、zerofill不作为保留关键字;设置set b_format_version = '5.7'和set b_format_dev_version = 's1';(或者高于s1的版本)后,系统会将datetime、regexp、rlike、zerofill从参数disable_keyword_options中删除,此时可作为保留关键字使用。
  • auto_increment_cache 参数说明:对自动增长列批量插入或导入触发自增时,预留自增缓存值的个数。预留自增值时,刷新自增计数器为自增缓存值的最大值,缓存值使用完毕之前,自增计数器值不变,触发自增使用缓存的值。多租场景下,该参数可在PDB级别设置。 预留的缓存值仅在语句内有效,若预留的自增缓存值没有全部被使用,后续插入语句基于自增计数器触发自增,会出现表中自动增长列的值不连续的情况。 并行导入或插入自动增长列触发自增时,每个并行线程预留的缓存值也只在其线程中使用,未完全使用完毕的话,也会出现表中自动增长列的值不连续的情况。 对已有数据的表添加自动增长列或修改某列为自动增长列时,已有数据触发自增,预留自增缓存值也受此参数影响。 此参数不影响本地临时表中的自动增长列。 仅在b_format_version='5.7'且b_format_dev_version='s2'时生效。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647 参数值为0时,自动预留自增缓存值。 第一次触发自增时,若已知即将插入自动增长列的行数,预留已知数量的值。 例如:“INSERT INTO table SELECT ...”和COPY FROM触发自增值无法获取即将插入的行数。ALTER TABLE命令表数据重写时,若触发自增,使用统计信息中的reltuples作为即将预留的行数。 “INSERT INTO table VALUES(...),(...),...”由于要分布到不同DN,在某些执行计划中,DN获取不到即将插入的行数。 若行数未知,每次预留2^n个值,例如,第一次自增预留1个值,第二次自增预留2个值,第三次预留4个值,第四次预留8个值,以此类推,若预留值个数超过65535,预留65535个值。 参数值不为0时,预留缓存值的数量为参数值。 第一次触发自增时,若已知即将插入自动增长列的行数,预留已知数量的值。 若行数未知,每次预留auto_increment_cache数量的自增值。 默认值:0。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值,若默认情况产生自增值不连续的情况,可以根据用户即将批量插入数据量调整参数值。 设置不当的风险与影响:参数值越大,批量插入性能越优,也更可能产生不连续的自增值。
  • foreign_key_checks 参数说明:控制是否开启外键约束的完整性检查。多租场景下,该参数可在PDB级别设置。 该参数仅在M-Compatibility兼容模式下生效。 参数类型:布尔型 参数单位:无 取值范围: on:表示启用外键约束的完整性检查。 off:表示关闭外键约束的完整性检查。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:建议仅在数据导入时,且保证原有数据满足外键约束完整性的场景下,将该参数设置为off,提升导入效率。 设置不当的风险与影响:将该参数设置为off时,对参考表、被参考表的DML操作不会触发外键的完整性检查。DML操作后,表中可能存在与外键完整性冲突的数据,且重新启用该参数时,不会对已有数据是否符合外键约束完整性进行校验。 该参数影响以下行为: DDL操作: 在创建表时,无论foreign_key_checks是否启用,都会校验表名是否与已有的外键(被参考表不存在)相匹配,如果匹配,则校验外键定义是否正确,并将被参考表不存在的外键转换为被参考表存在的外键。 在添加外键时,如果外键引用的被参考表不存在,foreign_key_checks为on时提示报错信息,foreign_key_checks为off时会创建被参考表不存在的外键。 在删除被参考表时,如果指定了CASCADE选项,则无论foreign_key_checks是否启用,都会级联删除参考表上的外键;如果未指定CASCADE选项,foreign_key_checks为on时提示报错信息,foreign_key_checks为off时会将外键转换为参考表不存在的外键。 在TRUNCATE被参考表时,如果指定了CASCADE选项,则无论foreign_key_checks是否开启,都会级联删除参考表中的数据;如果未指定CASCADE选项,foreign_key_checks为on时提示报错信息,foreign_key_checks为off时不提示报错信息,也不会级联清除参考表中的数据。 DML操作:具体行为如表10所示。 表10 foreign_key_checks对DML操作的影响 操作 foreign_key_checks 被参考表 参考表(被参考表存在) 参考表(被参考表不存在) INSERT on 无需检查,插入成功。 检查完整性,与完整性冲突时,则插入失败。 外键字段无法插入非空值。 off 无需检查,插入成功。 跳过检查,插入成功。 跳过检查,插入成功。 DELETE on 检查完整性,与完整性冲突时,根据ACTION操作报错或级联修改。 无需检查,删除成功。 无需检查,删除成功。 off 跳过检查,删除成功。 无需检查,删除成功。 无需检查,删除成功。 UPDATE on 检查完整性,与完整性冲突时,根据ACTION操作报错或级联修改。 检查完整性,与完整性冲突时,则更新失败。 外键字段无法更新为非空值。 off 跳过检查,更新成功。 跳过检查,更新成功。 跳过检查,更新成功。 REPLACE INTO on 检查完整性,与完整性冲突时,根据ACTION操作报错或级联修改。 检查完整性,与完整性冲突时,则操作失败。 外键字段无法新增或被更新为非空值。 off 跳过检查,操作成功。 跳过检查,操作成功。 跳过检查,操作成功。
  • auto_increment_offset 参数说明:AUTO_INCREMENT自动增长列的起始值,自增值将由auto_increment_offset + N × auto_increment_increment计算而来,N为正整数。多租场景下,该参数可在PDB级别设置。 参数类型:整型 参数单位:无 取值范围:1 ~ 65535 默认值:1。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据用户需要设置。 设置不当的风险与影响:设置不当会使自增值不符合预期。若参数值大于auto_increment_increment,自动增长列自增时会产生错误。
  • auto_increment_increment 参数说明:AUTO_INCREMENT自动增长列的自增步长,自增值将由auto_increment_offset + N × auto_increment_increment计算而来,N为正整数。多租场景下,该参数可在PDB级别设置。 参数类型:整型 参数单位:无 取值范围:1 ~ 65535 默认值:1。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据用户需要设置。 设置不当的风险与影响:设置不当会使自增值不符合预期。若参数值小于auto_increment_offset,自动增长列自增时会产生错误。
  • b_format_version 参数说明:数据库平台兼容性行为配置项,用于控制B兼容模式下的前向兼容性。该参数可在PDB级别设置。 仅当sql_compatibility兼容性参数设置为B时,b_format_version参数才会生效。 当该参数设置为非空字符串时,会同时设置参数b_format_behavior_compat_options为“ALL”值,参数bytea_output为“escape”值。当该参数重新设置为空字符串时,会将b_format_behavior_compat_options、bytea_output参数设为原来的值。 参数类型:字符串 参数单位:无 取值范围:空字符串""或"5.7" 默认值:""。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表 GUC参数分类中对应设置方法进行设置。 设置建议:与b_format_dev_version一起设置,在安装部署后立即设置,后期非必要无需变更。 设置不当的风险与影响:影响部分SQL的行为,导致兼容性问题。
  • sql_mode 参数说明:B兼容模式下和M-Compatibility模式下SQL行为控制配置项。该参数可在PDB级别设置。 当sql_compatibility兼容性参数设置为B、b_format_version设置为'5.7'、b_format_dev_version设置为's1'时,sql_mode才会生效;或者sql_compatibility兼容性参数设置为M时生效。 使用SHOW sql_mode和SELECT @@sql_mode进行查询时,会依据REAL_AS_FLOAT、ANSI_QUOTES、ONLY_FULL_GROUP_BY、NO_UNSIGNED_SUBTRACTION、NO_AUTO_VALUE_ON_ZERO、NO_BACKSLASH_ESCAPES、STRICT_TRANS_TABLES、STRICT_ALL_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ALLOW_INVALID_DATES、ERROR_FOR_DIVISION_BY_ZERO、TRADITIONAL、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION及PAD_CHAR_TO_FULL_LENGTH的顺序,大写显示,不因设置时的顺序与大小写而改变。 参数类型:字符串 参数单位:无 取值范围: B模式:空字符串""或"strict_trans_tables,only_full_group_by,no_zero_in_date,no_zero_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution,pad_char_to_full_length,no_auto_value_on_zero"中的选项值。 M-Compatibility模式:除支持B模式参数外,还新增了no_unsigned_subtraction、ansi_quotes、allow_invalid_dates、real_as_float、strict_all_tables、traditional。 每个选项值的含义如表9所述。 表9 兼容性配置项 兼容性配置项 兼容性行为控制 B模式参数配置说明 M-Compatibility模式参数配置说明 strict_trans_tables 设置时,对输入的参数格式和范围做严格校验。无效值输入或者超过范围时,解析报error。 不设置时,对输入的参数格式和范围做宽松校验,无效值输入或者超过范围时,解析报warning,返回对应数据的0值。 可独立设置和取消。 可独立设置和取消。 only_full_group_by 不允许出现非GROUP BY的key值、且不是常量和聚集函数的投影列。 可独立设置和取消,但无实际作用。 可独立设置和取消。 no_zero_in_date 不允许日期中的年、月、日是0值。 可独立设置和取消,但无实际作用。 可独立设置和取消。 no_zero_date 不允许日期是0值(0000-00-00)。 可独立设置和取消,但无实际作用。 可独立设置和取消。 error_for_division_by_zero 不允许被0除。 可独立设置和取消,但无实际作用。 可独立设置和取消。 no_auto_create_user 无实际作用,仅用作SET SQL_MODE语句包含此选项时不报错的兼容作用。 可独立设置和取消。 可独立设置和取消。 no_engine_substitution 无实际作用,仅用作SET SQL_MODE语句包含此选项时不报错的兼容作用。 可独立设置和取消。 可独立设置和取消。 pad_char_to_full_length 用于表中的char类型列格式化输出,包含时输出带有尾部空格的字符串,否则输出不带尾部空格字符串。 可独立设置和取消。 可独立设置和取消。 no_auto_value_on_zero 包含此选项后,向AUTO_INCREMENT自动增长列插入0值将不会自增。 可独立设置和取消。 可独立设置和取消。 no_unsigned_subtraction 禁止无符号数减法,如果使用无符号整数进行减法操作,且结果为负数,则会返回一个错误。 可独立设置和取消,但无实际作用。 可独立设置和取消。 ansi_quotes 启用ANSI_QUOTES模式,该模式下双引号被视为标识符引用符号,而不是字符串引用符号。在该模式下,如果使用双引号引用表名或列名,则必须使用双引号引用整个名称,而不能使用反引号。 可独立设置和取消,但无实际作用。 可独立设置和取消。 allow_invalid_dates 允许插入无效日期,如果启用该选项,则MySQL将允许插入无效的日期,例如'0000-00-00'。 可独立设置和取消,但无实际作用。 可独立设置和取消。 real_as_float 默认将REAL类型视为DOUBLE类型,如果启用该选项,则将REAL类型视为FLOAT类型。 可独立设置和取消,但无实际作用。 可独立设置和取消。 strict_all_tables 与strict_trans_tables效果一致。 可独立设置和取消。 可独立设置和取消。 traditional 与同时设置strict_trans_tables、strict_all_tables、no_zero_in_date、no_zero_date,error_for_division_by_zero、no_auto_create_user和no_engine_substitution效果一致。 可独立设置和取消。 说明: 具体是否生效取决于B兼容模式是否支持。 可独立设置和取消。 默认值:"strict_trans_tables,only_full_group_by,no_zero_in_date,no_zero_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution"。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • m_format_dev_version 参数说明:数据库平台迭代小版本兼容性行为配置项。 当sql_compatibility兼容性参数设置为M时,m_format_dev_version才会生效。 参数类型:字符串 参数单位:无 取值范围:空字符串""或表8中的兼容性配置项。 表8 兼容性配置项 兼容性配置项 兼容性行为控制 s1 影响如下语法: 禁用SELECT FETCH FIRST ROWS ONLY语法。 禁用TRUNCATE CASCADE/RESTRICT语法。 禁用CREATE TABLE中定义主键时指定USING INDEX TABLESPACE tablespace_name语法。 DROP TABLE/VIEW/COLUMN中CASCADE/RESTRIC语法语义改变,改为忽略CASCADE/RESTRIC的语义,且默认行为为RESTRIC。 CREATE TABLE REFEREN CES 作为列约束时,语法语义改变,改为忽略该外键定义。 s2 影响如下操作符: ::操作符的转换规则变更为默认隐式转换规则。 影响如下视图: information_schema.statistics视图内INDEX_NAME字段在主键场景由显示primary改为显示PRIMARY;COLUMN_NAME和SUB_PART字段补充了前缀索引场景的支持;临时表索引由显示改为不显示;系统列的索引由部分场景可能会显示改为不显示。 information_schema.global_variables视图内数据由显示pg_settings表里面所有数据缩小为pg_settings表里context字段是“internal”、“postmaster”、“backend”、“sighup”数据。 information_schema.columns视图内COLUMN_KEY字段补充了前缀索引场景的支持。 information_schema.table_constraints视图内CONSTRAINT_NAME字段在主键约束场景由显示约束名改为显示PRIMARY。 information_schema.character_sets视图可以查询所有可用字符集信息。 information_schema.collations视图可以查询所有可用字符排序规则信息。 information_schema.collation_character_set_applicability视图可以查询所有可用排序规则和字符集的对应关系。 information_schema.character_sets、information_schema.collations、information_schema.collation_character_set_applicability视图中的CHARACTER_SET_NAME改成小写,查询显示根据字符序细分utf8mb4和utf8。 影响如下语法: 以下事务语法语义改变,改为设置下一个事务特性: set @@transaction_isolation = value set @@transaction_read_only = value set transaction isolation level set transaction {read write | read only} set transaction 语法语义改变,改为设置会话级事务特性: set [local|session|@@session.] transaction_isolation = value set [local|session|@@session.] transaction_read_only = value show transaction_isolation显示为带中划线的隔离级别。 创建生成列不指定STORED和VIRTUAL关键字,默认创建虚拟生成列。 SHOW CREATE TABLE语法返回结果集变更,包括: 列/表注释位置变更,从以COMMENT ON语句形式返回改为在CREATE TABLE语句以COMMENT子句形式中返回; 主键与唯一约束位置变更,从以ALTER TABLE ADD CONSTRAINT语句形式返回改为在CREATE TABLE语句以CONSTRAINT子句形式作为表约束中返回; 主键与唯一约束中的USING INDEX TABLESPACE选项不再显示,该选项在设置兼容版本控制开关为s1后被禁用; 索引注释位置变更,从以COMMENT ON语句形式返回改为在CREATE INDEX语句以COMMENT子句形式返回; 全局临时表ON COMMIT选项位置变更,从以CREATE TABLE语句WITH子句中on_commit_delete_rows参数形式返回改为在CREATE TABLE语句以ON COMMIT子句形式返回。 SHOW CHARACTER SET语法查询使用视图information_schema.character_sets,查询结果随该视图内容的变化而变化。 SHOW COLLATION语法查询使用视图information_schema.collations,查询结果随该视图内容的变化而变化。 影响以下GUC参数: 增加transaction_isolation的参数范围。 影响如下功能: 删除生成列的基列需要先删除对应的生成列。 存储生成列的基列不支持指定SET NULL、SET DEFAULT、CASCADE关键字关联 ON UPDATED和ON DELETE动作。 ALTER TABLE修改表涉及存储生成列时,生成列的CHECK约束检查生效。 默认值:"" 设置方式:该参数属于USERSET类型参数,请参考表 GUC参数分类中对应设置方法进行设置。 设置建议:在安装部署后立即设置,后期非必要无需变更。 设置不当的风险与影响:影响部分SQL的行为,导致兼容性问题。
  • b_format_behavior_compat_options 参数说明:数据库B模式兼容性行为配置项。该参数可在PDB级别设置。 参数类型:字符串 参数单位:无 取值范围:当前只支持表1 B模式兼容性配置项,当设置多个兼容性配置项时,相邻配置项之间用逗号隔开,例如:set b_format_behavior_compat_options="enable_set_variables,set_session_transaction";。 默认值:""。在PDB场景内,若未设置该参数,则继承来自全局的设置。 当参数b_format_version不为""时,b_format_behavior_compat_options会被设置为"all",而且不能被修改。 表1 B模式兼容性配置项 兼容性配置项 兼容性行为控制 enable_set_variables set语法增强控制开关。 不设置此配置时,不支持set自定义变量、set [global | session]语法。 设置此配置时,支持B兼容模式下使用上述语法,比如 set @v1 = 1;。 set_session_transaction set session transaction控制开关。 不设置此配置时,set session transaction等效于set local transaction。 设置此配置时,支持B兼容模式下使用上述语法,修改当前会话事务特性。 enable_modify_column ALTER TABLE MODIFY语义控制开关。 不设置此配置时,“ALTER TABLE table_name MODIFY column_name data_type;”只修改列的数据类型。 设置此配置时,“ALTER TABLE table_name MODIFY column_name data_type;”修改整个列定义。 default_collation 默认字符序前向兼容开关。 若不设置此配置项,在未显式指定字符类型字段的字符集或字符序且表级字符序也为空时,字段为default字符序。 若设置此配置项,当表级字符序不为空时,字符类型字段的字符序继承表级字符序,当表级字符序为空时,字符类型字段的字符序设置为数据库编码对应的默认字符序。 all 打开所有语法控制开关。 all不能同时和其他配置项一起指定。表格中除all外所有配置项逗号隔开的含义和取值为all含义相同。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:控制一些B兼容性特性是否可用,若要更改,请在理解参数含义后谨慎操作,避免因误操作产生意料之外的风险。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • m_format_behavior_compat_options 参数说明:数据库M-compatibility模式的兼容性行为配置项。多租场景下,该参数可在PDB级别设置。 参数类型:字符串 参数单位:无 取值范围:当前只支持表2,当设置多个兼容性配置项时,相邻配置项之间用逗号隔开。 默认值:""。在PDB场景内,若未设置该参数,则继承来自全局的设置。 表2 M-compatibility模式兼容性配置项 兼容性配置项 兼容性行为控制 enable_escape_string 转义符控制开关。 不设置此配置项时,转义符行为受 GaussDB 转义符相关的GUC参数standard_conforming_strings、escape_string_warning和backslash_quote控制。 设置此配置项时,默认支持除'\0'外的所有MySQL转义符,且gsql客户端中'\b', '\r'和'\Z'回显行为会发生改变,与MySQL客户端保持一致。 enable_conflict_funcs 冲突函数控制开关。 不设置此配置项时,ceil、format、instr、position、row_number、regexp_instr、regexp_like、regexp_replace及regexp_substr函数保持GaussDB原生系统函数行为。 设置此配置项,且参数m_format_dev_version值为's2'或以上版本时,ceil、format、instr、position及row_number函数为M-Compatibility兼容模式数据局库实现行为。使用regexp_instr、regexp_like、regexp_replace及regexp_substr函数时会报错,提示M-Compatibility兼容模式数据库不支持。 select_column_name 列名回显控制开关。目前只有M兼容模式下支持,在B模式下是不支持的。需要设置m_format_behavior_compat_options ='select_column_name',特性开关为用户级,缺省关闭。 不设置此配置项时: SELECT 系统函数:回显为系统函数名。 SELECT 表达式:回显为?column?。 SELECT 布尔值:回显为bool。 设置此配置项时,列名回显为全部的函数或表达式输入。 仅支持集中式,使用商用客户端测试。 如果显示的列名字符串中含有转义字符,只有在设置了m_format_behavior_compat_options ='enable_escape_string';后才会显示转义后的字符,否则会显示转义字符本身。比如SELECT"abc\tdef";M兼容在未开启上述设置时显示为abc\tdef。 m_db=# set m_format_behavior_compat_options='select_column_name,enable_escape_string'; SET m_db=# select "abc\tdef"; abc def ------------- abc def (1 row) m_db=# set m_format_behavior_compat_options='select_column_name'; SET m_db=# select "abc\tdef"; abc\tdef ---------- abc\tdef (1 row) 列名超过63个字符时,会截断后面部分。 表达式最后的部分为注释时,则不会显示最后的注释以及与注释相连的空格。 m_db=# SELECT 123 /* 456 */; 123 ----- 123 (1 row) 表达式为布尔值时,无论输入大小写,回显为TRUE或FALSE。 m_db=# SELECT true; TRUE ------ t (1 row) 表达式为null时,无论输入大小写,回显为NULL。 m_db=# SELECT null; NULL ------ (1 row) 表达式包含-时,会将全部的输入作为列名输出。 m_db=# SELECT (+-+1); (+-+1) -------- -1 (1 row) m_db=# SELECT -true; -true ------- -1 (1 row) m_db=# SELECT -null; -null ------- (1 row) enable_precision_decimal 支持数据类型精度。 不设置此配置项时: CREATE TABLE SELECT语句只支持SELECT表的列,不支持表达式、函数、常量,以及union场景(因为涉及结果类型推导)。 设置此配置项时: CREATE TABLE SELECT语句不受限制上面描述的场景限制。 enable_load_data_remote_transmission LOAD DATA支持从客户端导入数据。 不设置此项时:LOAD DATA指定local参数后将从服务端所在环境导入文件; 设置此配置项时:LOAD DATA指定local参数后将从客户端所在环境导入数据。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。 在未开启精度传递参数(m_format_behavior_compat_options不开启enable_precision_decimal选项)情况下创建的索引在开启精度传递参数后会发生失效,如果打开精度传递时需要重新创建索引。
  • plsql_compile_check_options 参数说明:数据库兼容性行为配置项。该参数可在PDB级别设置。 参数类型:字符串 参数单位:无 取值范围:当前只支持表4,当设置多个兼容性配置项时,相邻配置项用逗号隔开,例如:set plsql_compile_check_options='for_loop,outparam'。 默认值:''。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • a_format_dev_version 参数说明:数据库平台迭代小版本兼容性行为配置项。该参数可在PDB级别设置。 参数类型:字符串 参数单位:无 取值范围:当前只支持表6。 默认值:"s6"。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。 表6 兼容性配置项 兼容性配置项 兼容性行为控制 s1 A平台兼容迭代小版本,影响函数(TRUNC(date, fmt),ROUND(date, fmt),NVL2,LPAD,RPAD,ADD_MONTHS,MONTHS_BETWEEN,REGEXP_REPLACE,REGEXP_COUNT,TREAT,EMPTY_CLOB,INSTRB,trunc(number),greatest,least,mod,round(number),cast,to_date,to_timestamp,chr,rtrim,translate,to_char,to_number,to_timestamp_tz)。 数据类型转换:小数字符串转换成整数类型(int1/int2/int4/int8/int16)时进行四舍五入。 数据类型转换:支持timestamp with time zone到timestamp without time zone的隐式转换。 s2 A平台兼容迭代小版本,影响函数(dump, to_single_byte, to_multi_byte, nls_upper, nls_lower, initcap, ascii2, asciistr, unistr, vsize, cosh, remainder, sinh, tanh, nanvl, current_date, current_timestamp, dbtimezone, numtodsinterval, numtoyminterval, new_time, sessiontimezone, sys_extract_utc, tz_offset, to_binary_double, to_binary_float, to_dsinterval, to_yminterval, lnnvl, ora_hash, rawtohex2, bit2coding, bit4coding)。 兼容配置项为s1时的所有行为。 s3 A平台兼容迭代小版本,开启参数,支持无参函数嵌套调用。 兼容配置项为s2时的所有行为。 s4 A平台兼容迭代小版本,影响函数nchr(cvalue int|bigint)、to_timestamp_tz、getclobval(xml)、getstringval(xml)。 兼容配置项为s3时的所有行为。 s5 A平台兼容迭代小版本,开启参数,支持复合类型与函数同名,优先解析为复合类型,影响函数sys_guid()。 兼容配置项为s4时的所有行为。 s6 A平台兼容迭代小版本,开启参数,影响函数mod(text, int)。 兼容配置项为s5时的所有行为。
  • a_format_version 参数说明:数据库平台兼容性行为配置项。该参数可在PDB级别设置。 参数类型:字符串 参数单位:无 取值范围:当前只支持表5。 默认值:"10c"。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。 表5 兼容性配置项 兼容性配置项 兼容性行为控制 10c A平台兼容版本。
  • group_concat_max_len 参数说明:搭配函数group_concat()使用,限制其返回值长度,超长截断,并产生相应报错/告警。当sql_mode设置含有STRICT_TRANS_TABLES时,DML语句中会产生报错,其余场景中提示告警。该参数可在PDB级别设置。 参数类型:整型 参数单位:无 取值范围:0 ~ 9223372036854775807,目前实际生效的最大长度是1073741823,超出此长度后会有out of memory的报错。 默认值:1024。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过小可能导致group_concat()返回的结果被截断。
  • lastval_supported 参数说明:控制是否可以使用lastval()函数。 参数类型:布尔型 参数单位:无 取值范围: on:表示支持lastval()函数,同时nextval()函数不支持下推。 off:表示不支持lastval()函数,同时nextval()函数可以下推。 默认值:off 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • convert_string_to_digit 参数说明:设置隐式转换优先级,是否优先将字符串转为数字。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示优先将字符串转为数字。 off:表示不优先将字符串转为数字。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:调整该参数会修改内部数据类型转换规则,导致不可预期的行为,请谨慎操作。
  • nls_nchar_characterset 参数说明:搭配nchr(cvalue int|bigint)系统函数使用,设置国家字符集。该参数可在PDB级别设置。 参数类型:字符串 参数单位:无 取值范围:“AL16UTF16”、“UTF8”,不区分大小写。 默认值:"AL16UTF16"。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。 数据库不支持国家字符集,该参数只是为了兼容A数据库,获取用户想使用的国家字符集。 该GUC参数仅限于nchr(cvalue int|bigint)函数的使用。
  • transform_null_equals 参数说明:是否控制表达式expr=NULL(或NULL=expr)当作expr IS NULL处理。正确的SQL标准兼容的expr=NULL总是返回NULL(未知)。Microsoft Access里的过滤表单生成的查询使用expr=NULL来测试空值。打开这个选项后,可以使用该接口来访问数据库。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示控制表达式expr=NULL(或NULL=expr)当作expr IS NULL处理,如果expr得出NULL值则返回真,否则返回假。 off:表示不控制,即expr=NULL总是返回NULL(未知)。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。 新用户经常在涉及NULL的表达式上语义混淆,故默认值设为off。
  • support_extended_features 参数说明:控制是否支持数据库的扩展特性。 参数类型:布尔型 参数单位:无 取值范围: on:表示支持数据库的扩展特性。 off:表示不支持数据库的扩展特性。 默认值:off 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • enable_multiple_charset 参数说明:该参数用于控制在M-Compatibility模式数据库下,是否可以创建表、列、Schema指定字符集和当前数据库字符集不同。 参数类型:布尔型 参数单位:无 取值范围: on:可以创建表、列、Schema指定字符集和当前数据库字符集不同。 off:不可以创建表、列、Schema指定字符集和当前数据库字符集不同。 默认值:on。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:根据实际业务需求设置。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
共100000条