• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • sys_get_config()函数

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

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

    按照惯例,sys_get_config()首先调用的例程将检查相应的用户定义变量是否存在以及是否为non-NULL。如果是这样,例程将使用变量值而不读取sys_config表。如果变量不存在或为NULL,则例程从表中读取选项值,并将用户定义的变量设置为该值。有关配置选项及其对应的用户定义变量之间的关系的更多信息,请参见“ 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;