MySQL 5.6 リファレンスマニュアル  /  INFORMATION_SCHEMA テーブル  /  INFORMATION_SCHEMA ROUTINES テーブル

21.18 INFORMATION_SCHEMA ROUTINES テーブル

ROUTINES テーブルはストアドルーチン (プロシージャーおよび関数の両方) に関する情報を提供します。ROUTINES テーブルには、ユーザー定義関数 (UDF) は含まれません。

mysql.procは、存在する場合、INFORMATION_SCHEMA.ROUTINES テーブルカラムに対応する mysql.proc テーブルカラムを示します。

INFORMATION_SCHEMA mysql.proc 備考
SPECIFIC_NAME specific_name
ROUTINE_CATALOG def
ROUTINE_SCHEMA db
ROUTINE_NAME name
ROUTINE_TYPE type {PROCEDURE|FUNCTION}
DATA_TYPE COLUMNS テーブルの場合と同じ
CHARACTER_MAXIMUM_LENGTH COLUMNS テーブルの場合と同じ
CHARACTER_OCTET_LENGTH COLUMNS テーブルの場合と同じ
NUMERIC_PRECISION COLUMNS テーブルの場合と同じ
NUMERIC_SCALE COLUMNS テーブルの場合と同じ
DATETIME_PRECISION COLUMNS テーブルの場合と同じ
CHARACTER_SET_NAME COLUMNS テーブルの場合と同じ
COLLATION_NAME COLUMNS テーブルの場合と同じ
DTD_IDENTIFIER データ型ディスクリプタ
ROUTINE_BODY SQL
ROUTINE_DEFINITION body_utf8
EXTERNAL_NAME NULL
EXTERNAL_LANGUAGE language NULL
PARAMETER_STYLE SQL
IS_DETERMINISTIC is_deterministic
SQL_DATA_ACCESS sql_data_access
SQL_PATH NULL
SECURITY_TYPE security_type
CREATED created
LAST_ALTERED modified
SQL_MODE sql_mode MySQL 拡張
ROUTINE_COMMENT comment MySQL 拡張
DEFINER definer MySQL 拡張
CHARACTER_SET_CLIENT MySQL 拡張
COLLATION_CONNECTION MySQL 拡張
DATABASE_COLLATION MySQL 拡張

:

  • MySQL は EXTERNAL_LANGUAGE を次のように計算します。

    • mysql.proc.language='SQL' の場合、EXTERNAL_LANGUAGENULL になります

    • それ以外の場合、EXTERNAL_LANGUAGEmysql.proc.language に存在します。ただし、まだ外部言語がないので、これは常に NULL になります。

  • CREATED: ルーチンが作成された日時です。これは TIMESTAMP 値です。

  • LAST_ALTERED: ルーチンが最後に変更された日時です。これは TIMESTAMP 値です。ルーチンが作成されてから変更されなかった場合、このカラムは CREATED カラムと同じ値を保持します。

  • SQL_MODE: ルーチンが作成または変更されたときに有効であり、ルーチンを実行するときの SQL モードです。指定可能な値については、セクション5.1.7「サーバー SQL モード」を参照してください。

  • CHARACTER_SET_CLIENT: ルーチンが作成されたときの character_set_client システム変数のセッション値です。

  • COLLATION_CONNECTION: ルーチンが作成されたときの collation_connection システム変数のセッション値です。

  • DATABASE_COLLATION: ルーチンが関連付けられているデータベースの照合順序です。

  • DATA_TYPECHARACTER_MAXIMUM_LENGTHCHARACTER_OCTET_LENGTHNUMERIC_PRECISIONNUMERIC_SCALEDATETIME_PRECISIONCHARACTER_SET_NAME、および COLLATION_NAME カラムは、ストアドファンクションの RETURNS 句に対するデータ型に関する情報を提供します。ストアドルーチンがストアドプロシージャーである場合、これらのカラムはすべて NULL になります。MySQL 5.6.4 で DATETIME_PRECISION が追加されました。

  • ストアドファンクション RETURNS データ型に関する情報は、PARAMETERS テーブルでも利用できます。関数に対する戻り値のデータ型の行は、ORDINAL_POSITION 値が 0 である行として識別できます。


User Comments
  Posted by stephen d on February 8, 2007
In case you would want to view all the stored procedures in a Database then we can use :

SELECT ROUTINE_NAME
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE="PROCEDURE"
AND ROUTINE_SCHEMA="dbname";

You could use the same statement for FUNCTIONS just set
ROUTINE_TYPE="FUNCTION" in the WHERE clause
Sign Up Login You must be logged in to post a comment.