文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美國信紙尺寸) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  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;