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_DETERMINISTIC
YES
或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 的列。