文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  sys_get_config() 函数

30.4.5.19 sys_get_config() 函数

给定一个配置选项名称,从 sys_config 表中返回选项值,或者如果选项在表中不存在,则返回提供的默认值(可能是 NULL)。

如果 sys_get_config() 返回默认值,并且该值为 NULL,则预期调用者能够为给定的配置选项处理 NULL

按照惯例,调用 sys_get_config() 的例程首先检查相应的用户定义变量是否存在且不为 NULL。如果存在,例程将使用变量值,而不会读取 sys_config 表。如果变量不存在或为 NULL,例程将从表中读取选项值,并将用户定义变量设置为该值。有关配置选项与其相应用户定义变量之间关系的更多信息,请参见 第 30.4.2.1 节,“sys_config 表”.

如果您想检查配置选项是否已设置,如果没有,使用 sys_get_config() 的返回值,您可以使用 IFNULL(...)(参见后面的示例)。但是,不应在循环中执行此操作(例如,对于结果集中的每一行),因为对于仅在第一次迭代中需要赋值的重复调用,使用 IFNULL(...) 预计会比使用 IF (...) THEN ... END IF; 块慢得多(参见后面的示例)。

参数
  • in_variable_name VARCHAR(128):要返回值的配置选项的名称。

  • in_default_value VARCHAR(128):如果在 sys_config 表中找不到配置选项,则要返回的默认值。

返回值

一个 VARCHAR(128) 值。

示例

sys_config 表中获取配置值,如果选项不在表中,则以 128 作为默认值

mysql> SELECT sys.sys_get_config('statement_truncate_len', 128) AS Value;
+-------+
| Value |
+-------+
| 64    |
+-------+

单行示例:检查选项是否已设置;如果未设置,则分配 IFNULL(...) 结果(使用来自 sys_config 表的值)

mysql> SET @sys.statement_truncate_len =
       IFNULL(@sys.statement_truncate_len,
              sys.sys_get_config('statement_truncate_len', 64));

IF (...) THEN ... END IF; 块示例:检查选项是否已设置;如果未设置,则分配来自 sys_config 表的值

IF (@sys.statement_truncate_len IS NULL) THEN
  SET @sys.statement_truncate_len = sys.sys_get_config('statement_truncate_len', 64);
END IF;