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
欄位為NULL
,如果您只有CREATE ROUTINE
、ALTER ROUTINE
或EXECUTE
權限。有關儲存函數傳回值的資訊也可用於
PARAMETERS
表格。儲存函數的傳回值列可以識別為ORDINAL_POSITION
值為 0 的列。