文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (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;