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