ROUTINES 表格提供關於預存常式(預存程序和預存函數)的資訊。ROUTINES 表格不包含內建(原生)函數或可載入函數。
ROUTINES 表格包含以下欄位:
SPECIFIC_NAME常式的名稱。
ROUTINE_CATALOG常式所屬的目錄名稱。此值始終為
def。ROUTINE_SCHEMA常式所屬的綱要(資料庫)名稱。
ROUTINE_NAME常式的名稱。
ROUTINE_TYPE預存程序為
PROCEDURE,預存函數為FUNCTION。DATA_TYPE如果常式為預存函數,則為傳回值資料類型。如果常式為預存程序,則此值為空。
DATA_TYPE值僅為類型名稱,不包含其他資訊。DTD_IDENTIFIER值包含類型名稱,可能包含精確度或長度等其他資訊。CHARACTER_MAXIMUM_LENGTH對於預存函數字串傳回值,以字元為單位的最大長度。如果常式為預存程序,則此值為
NULL。CHARACTER_OCTET_LENGTH對於預存函數字串傳回值,以位元組為單位的最大長度。如果常式為預存程序,則此值為
NULL。NUMERIC_PRECISION對於預存函數數值傳回值,為數值精確度。如果常式為預存程序,則此值為
NULL。NUMERIC_SCALE對於預存函數數值傳回值,為數值比例。如果常式為預存程序,則此值為
NULL。DATETIME_PRECISION對於預存函數時間傳回值,為小數秒的精確度。如果常式為預存程序,則此值為
NULL。CHARACTER_SET_NAME對於預存函數字元字串傳回值,為字元集名稱。如果常式為預存程序,則此值為
NULL。COLLATION_NAME對於預存函數字元字串傳回值,為校對名稱。如果常式為預存程序,則此值為
NULL。DTD_IDENTIFIER如果常式為預存函數,則為傳回值資料類型。如果常式為預存程序,則此值為空。
DATA_TYPE值僅為類型名稱,不包含其他資訊。DTD_IDENTIFIER值包含類型名稱,可能包含精確度或長度等其他資訊。ROUTINE_BODY用於常式定義的語言。此值始終為
SQL。ROUTINE_DEFINITION常式執行的 SQL 陳述式文字。
EXTERNAL_NAME此值始終為
NULL。EXTERNAL_LANGUAGE預存常式的語言。該值從
mysql.routines資料字典表格的external_language欄位讀取。PARAMETER_STYLE此值始終為
SQL。IS_DETERMINISTICYES或NO,取決於常式是否使用DETERMINISTIC特性定義。SQL_DATA_ACCESS常式的資料存取特性。值為
CONTAINS SQL、NO SQL、READS SQL DATA或MODIFIES SQL DATA中的一個。SQL_PATH此值始終為
NULL。SECURITY_TYPE常式
SQL SECURITY特性。值為DEFINER或INVOKER中的一個。CREATED建立常式的日期和時間。這是一個
TIMESTAMP值。LAST_ALTERED上次修改常式的日期和時間。這是一個
TIMESTAMP值。如果常式自建立以來未經修改,則此值與CREATED值相同。SQL_MODE建立或變更常式時以及常式執行時生效的 SQL 模式。如需允許的值,請參閱 第 7.1.11 節,「伺服器 SQL 模式」。
ROUTINE_COMMENT註解文字(如果常式有註解)。如果沒有,則此值為空。
DEFINER在
DEFINER子句中指定的帳戶名稱(通常是建立常式的使用者),格式為'。使用者名稱'@'主機名稱'CHARACTER_SET_CLIENT當常式建立時,
character_set_client系統變數的會期值。COLLATION_CONNECTION當常式建立時,
collation_connection系統變數的會期值。DATABASE_COLLATION與常式相關聯的資料庫的排序規則。
注意事項
若要查看常式的相關資訊,您必須是指定為常式
DEFINER的使用者,具有SHOW_ROUTINE權限,在全域層級具有SELECT權限,或者在包含該常式的範圍中被授予CREATE ROUTINE、ALTER ROUTINE或EXECUTE權限。ROUTINE_DEFINITION欄位在您僅具有CREATE ROUTINE、ALTER ROUTINE或EXECUTE權限時為NULL。關於儲存函數傳回值的資訊,也請參考
PARAMETERS表格。儲存函數的傳回值列可以被識別為ORDINAL_POSITION值為 0 的列。