The ROUTINES table provides
information about stored routines (stored procedures and stored
functions). The ROUTINES table does
not include built-in (native) functions or loadable functions.
The ROUTINES table has these columns:
SPECIFIC_NAMEThe name of the routine.
ROUTINE_CATALOGThe name of the catalog to which the routine belongs. This value is always
def.ROUTINE_SCHEMAThe name of the schema (database) to which the routine belongs.
ROUTINE_NAMEThe name of the routine.
ROUTINE_TYPEPROCEDUREfor stored procedures,FUNCTIONfor stored functions.DATA_TYPEIf the routine is a stored function, the return value data type. If the routine is a stored procedure, this value is empty.
The
DATA_TYPEvalue is the type name only with no other information. TheDTD_IDENTIFIERvalue contains the type name and possibly other information such as the precision or length.CHARACTER_MAXIMUM_LENGTHFor stored function string return values, the maximum length in characters. If the routine is a stored procedure, this value is
NULL.CHARACTER_OCTET_LENGTHFor stored function string return values, the maximum length in bytes. If the routine is a stored procedure, this value is
NULL.NUMERIC_PRECISIONFor stored function numeric return values, the numeric precision. If the routine is a stored procedure, this value is
NULL.NUMERIC_SCALEFor stored function numeric return values, the numeric scale. If the routine is a stored procedure, this value is
NULL.DATETIME_PRECISIONFor stored function temporal return values, the fractional seconds precision. If the routine is a stored procedure, this value is
NULL.CHARACTER_SET_NAMEFor stored function character string return values, the character set name. If the routine is a stored procedure, this value is
NULL.COLLATION_NAMEFor stored function character string return values, the collation name. If the routine is a stored procedure, this value is
NULL.DTD_IDENTIFIERIf the routine is a stored function, the return value data type. If the routine is a stored procedure, this value is empty.
The
DATA_TYPEvalue is the type name only with no other information. TheDTD_IDENTIFIERvalue contains the type name and possibly other information such as the precision or length.ROUTINE_BODYThe language used for the routine definition. This value is always
SQL.ROUTINE_DEFINITIONThe text of the SQL statement executed by the routine.
EXTERNAL_NAMEThis value is always
NULL.EXTERNAL_LANGUAGEThe language of the stored routine. The value is read from the
external_languagecolumn of themysql.routinesdata dictionary table.PARAMETER_STYLEThis value is always
SQL.IS_DETERMINISTICYESorNO, depending on whether the routine is defined with theDETERMINISTICcharacteristic.SQL_DATA_ACCESSThe data access characteristic for the routine. The value is one of
CONTAINS SQL,NO SQL,READS SQL DATA, orMODIFIES SQL DATA.SQL_PATHThis value is always
NULL.SECURITY_TYPEThe routine
SQL SECURITYcharacteristic. The value is one ofDEFINERorINVOKER.CREATEDThe date and time when the routine was created. This is a
TIMESTAMPvalue.LAST_ALTEREDThe date and time when the routine was last modified. This is a
TIMESTAMPvalue. If the routine has not been modified since its creation, this value is the same as theCREATEDvalue.SQL_MODEThe SQL mode in effect when the routine was created or altered, and under which the routine executes. For the permitted values, see Section 7.1.11, “Server SQL Modes”.
ROUTINE_COMMENTThe text of the comment, if the routine has one. If not, this value is empty.
DEFINERThe account named in the
DEFINERclause (often the user who created the routine), in'format.user_name'@'host_name'CHARACTER_SET_CLIENTThe session value of the
character_set_clientsystem variable when the routine was created.COLLATION_CONNECTIONThe session value of the
collation_connectionsystem variable when the routine was created.DATABASE_COLLATIONThe collation of the database with which the routine is associated.
Notes
To see information about a routine, you must be the user named as the routine
DEFINER, have theSHOW_ROUTINEprivilege, have theSELECTprivilege at the global level, or have theCREATE ROUTINE,ALTER ROUTINE, orEXECUTEprivilege granted at a scope that includes the routine. TheROUTINE_DEFINITIONcolumn isNULLif you have onlyCREATE ROUTINE,ALTER ROUTINE, orEXECUTE.Information about stored function return values is also available in the
PARAMETERStable. The return value row for a stored function can be identified as the row that has anORDINAL_POSITIONvalue of 0.