Алексей Паутов - MySQL: руководство профессионала
INFORMATION_SCHEMA
Name
SHOW
Name
Remarks
CONSTRAINT_CATALOG
NULL
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
TABLE_SCHEMA
TABLE_NAME
CONSTRAINT_TYPE
Примечания:
Значение CONSTRAINT_TYPE может быть UNIQUE, PRIMARY KEY или FOREIGN KEY.
Информация UNIQUE и PRIMARY KEY соответствует полю Key_name в выводе SHOW INDEX, если поле Non_unique равно 0.
Столбец CONSTRAINT_TYPE может содержать одно из этих значений: UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK. Это столбец CHAR (не ENUM). Значение CHECK недоступно, пока пакет не поддерживает CHECK.
9.13. Таблица INFORMATION_SCHEMA KEY_COLUMN_USAGE
Таблица KEY_COLUMN_USAGE описывает, которые столбцы ключа имеют ограничения.
INFORMATION_SCHEMA
Name
SHOW
Name
Remarks
CONSTRAINT_CATALOG
NULL
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
ORDINAL_POSITION
POSITION_IN_UNIQUE_CONSTRAINT
REFERENCED_TABLE_SCHEMA
REFERENCED_TABLE_NAME
REFERENCED_COLUMN_NAME
Примечания:
Если ограничение внешний ключ, то это столбец внешнего ключа, не столбец, а не тот столюец, на который внешний ключ ссылается.
Значение ORDINAL_POSITION позиция столбца внутри ограничения, а не позиция столбца внутри таблицы. Позиции столбца пронумерованы, начиная с 1.
Значение POSITION_IN_UNIQUE_CONSTRAINT NULL для ограничений unique и primary-key. Для ограничений foreign-key это порядковая позиция в ключе таблицы, которая вызвана.
Например, предположите, что имеется две таблицы с именами t1 и t3, которые имеют следующие определения:
CREATE TABLE t1 (s1 INT, s2 INT, s3 INT, PRIMARY KEY(s3)) ENGINE=InnoDB;
CREATE TABLE t3 (s1 INT, s2 INT, s3 INT, KEY(s1),
CONSTRAINT CO FOREIGN KEY (s2) REFERENCES t1(s3)) ENGINE=InnoDB;
Для этих двух таблиц таблица KEY_COLUMN_USAGE имеет две строки:
Одна строка с CONSTRAINT_NAME = 'PRIMARY', TABLE_NAME = 't1', COLUMN_NAME = 's3', ORDINAL_POSITION = 1, POSITION_IN_UNIQUE_CONSTRAINT = NULL.
Одна строка с CONSTRAINT_NAME = 'CO', TABLE_NAME = 't3', COLUMN_NAME = 's2', ORDINAL_POSITION = 1, POSITION_IN_UNIQUE_CONSTRAINT = 1.
9.14. Таблица INFORMATION_SCHEMA ROUTINES
Таблица ROUTINES обеспечивает информацию относительно сохраненных подпрограмм (процедуры и функций). Таблица ROUTINES не включает определяемые пользователем функции (UDF).
Столбец mysql.proc name указывает столбец таблицы mysql.proc, который соответствует столбцу таблицы INFORMATION_SCHEMA.ROUTINES.
INFORMATION_SCHEMA
Name
mysql.proc
Name
Remarks
SPECIFIC_NAME
specific_name
ROUTINE_CATALOG
NULL
ROUTINE_SCHEMA
db
ROUTINE_NAME
name
ROUTINE_TYPE
type
{PROCEDURE|FUNCTION}
DTD_IDENTIFIER
(data type descriptor)
ROUTINE_BODY
SQL
ROUTINE_DEFINITION
body
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 extension
ROUTINE_COMMENT
comment
MySQL extension
DEFINER
definer
MySQL extension
Примечания:
MySQL вычисляет EXTERNAL_LANGUAGE так:
Если mysql.proc.language='SQL', EXTERNAL_LANGUAGE равен NULL
Иначе EXTERNAL_LANGUAGE равен mysql.proc.language. Однако, пока не имеется внешних языков, так что это всегда NULL.
9.15. Таблица INFORMATION_SCHEMA VIEWS
Таблица VIEWS обеспечивает информацию относительно view в базах данных. Вы должны иметь привилегию SHOW VIEW, чтобы обратиться к этой таблице.
INFORMATION_SCHEMA
Name
SHOW
Name
Remarks
TABLE_CATALOG
NULL
TABLE_SCHEMA
TABLE_NAME
VIEW_DEFINITION
CHECK_OPTION
IS_UPDATABLE
DEFINER
SECURITY_TYPE
Примечания:
Столбец VIEW_DEFINITION показывает большинство из того, что Вы видите в поле Create Table, которое выводится SHOW CREATE VIEW. Пропустите слова перед SELECT и перед WITH CHECK OPTION. Предположите, что первоначальная инструкция была такой:
CREATE VIEW v AS SELECT s2,s1 FROM t WHERE s1 > 5 ORDER BY s1 WITH CHECK OPTION;
Затем определение этого view выглядит следующим образом:
SELECT s2,s1 FROM t WHERE s1 > 5 ORDER BY s1
Столбец CHECK_OPTION всегда имеет значение NONE.
Столбец IS_UPDATABLE равен YES, если view обновляемый, в противном случае NO.
Столбец DEFINER указывает, кто определил view. SECURITY_TYPE имеет значение DEFINER или INVOKER.
9.16. Таблица INFORMATION_SCHEMA TRIGGERS
Таблица TRIGGERS обеспечивает информацию относительно триггеров. Вы должны иметь привилегию SUPER, чтобы обратиться к этой таблице.
INFORMATION_SCHEMA
Name
SHOW
Name
Remarks
TRIGGER_CATALOG
NULL
TRIGGER_SCHEMA
TRIGGER_NAME
Trigger
EVENT_MANIPULATION
Event
EVENT_OBJECT_CATALOG
NULL
EVENT_OBJECT_SCHEMA
EVENT_OBJECT_TABLE
Table
ACTION_ORDER
0
ACTION_CONDITION
NULL
ACTION_STATEMENT
Statement
ACTION_ORIENTATION
ROW
ACTION_TIMING
Timing
ACTION_REFERENCE_OLD_TABLE
NULL
ACTION_REFERENCE_NEW_TABLE
NULL
ACTION_REFERENCE_OLD_ROW
OLD
ACTION_REFERENCE_NEW_ROW
NEW
CREATED
NULL
(
0
)
SQL_MODE
MySQL extension
DEFINER
MySQL extension
Примечания:
Столбцы TRIGGER_SCHEMA и TRIGGER_NAME содержат имя базы данных, в которой находится триггер и его имя, соответственно.
Столбец EVENT_MANIPULATION содержит одно из значений 'INSERT', 'DELETE' или 'UPDATE'.
Каждый триггер связан точно с одной таблицей. Столбцы EVENT_OBJECT_SCHEMA и EVENT_OBJECT_TABLE содержат базу данных, в которой эта таблица расположена, и имя таблицы.
Инструкция ACTION_ORDER содержит порядковую позицию действия триггера внутри списка подобных в той же самой таблице. В настоящее время это значение всегда 0, потому что невозможно иметь больше, чем один триггер с теми же самыми EVENT_MANIPULATION и ACTION_TIMING на той же самой таблице.
Столбец ACTION_STATEMENT содержит инструкцию, которая будет выполнена, когда вызывается триггер. Это текст, отображаемый в столбце Statement вывода SHOW TRIGGERS. Обратите внимание, что на эти тексты распространяется кодирование в UTF-8.
Столбец ACTION_ORIENTATION всегда содержит значения 'ROW'.
Столбец ACTION_TIMING содержит одно из двух значений: 'BEFORE' или 'AFTER'.
Столбцы ACTION_REFERENCE_OLD_ROW и ACTION_REFERENCE_NEW_ROW содержат старые и новые идентификаторы столбцов, соответственно. Это означает, что ACTION_REFERENCE_OLD_ROW всегда содержит значение 'OLD' и ACTION_REFERENCE_NEW_ROW 'NEW'.
Столбец SQL_MODE показывает режим сервера SQL, который был установлен, когда триггер был создан (и таким образом, который остается в силе для триггера, когда это вызывается, независимо от текущей ситуации). Возможный диапазон значений для этого столбца такой же, как для переменной системы sql_mode.
Столбец DEFINER был добавлен в MySQL 5.1.2. DEFINER указывает, кто определил триггер.
Следующие столбцы в настоящее время всегда содержат NULL:
TRIGGER_CATALOG,
EVENT_OBJECT_CATALOG,
ACTION_CONDITION,
ACTION_REFERENCE_OLD_TABLE,
ACTION_REFERENCE_NEW_TABLE,
CREATED.
Пример, используем ins_sum:
mysql> SELECT * FROM INFORMATION_SCHEMA.TRIGGERSG
*************************** 1. row ***************************
TRIGGER_CATALOG: NULL
TRIGGER_SCHEMA: test
TRIGGER_NAME: ins_sum
EVENT_MANIPULATION: INSERT
EVENT_OBJECT_CATALOG: NULL
EVENT_OBJECT_SCHEMA: test
EVENT_OBJECT_TABLE: account
ACTION_ORDER: 0
ACTION_CONDITION: NULL
ACTION_STATEMENT: SET @sum = @sum + NEW.amount
ACTION_ORIENTATION: ROW
ACTION_TIMING: BEFORE
ACTION_REFERENCE_OLD_TABLE: NULL
ACTION_REFERENCE_NEW_TABLE: NULL
ACTION_REFERENCE_OLD_ROW: OLD
ACTION_REFERENCE_NEW_ROW: NEW
CREATED: NULL
SQL_MODE:
DEFINER: [email protected]
9.17. Таблица INFORMATION_SCHEMA PLUGINS
Таблица PLUGINS обеспечивает информацию относительно расширений сервера.
INFORMATION_SCHEMA
Name
SHOW
Name
Remarks
PLUGIN_NAME
Name
MySQL extension
PLUGIN_VERSION
MySQL extension
PLUGIN_STATUS
Status
MySQL extension
PLUGIN_TYPE
Type
MySQL extension
PLUGIN_TYPE_VERSION
MySQL extension
PLUGIN_LIBRARY
Library
MySQL extension
PLUGIN_LIBRARY_VERSION
MySQL extension
PLUGIN_AUTHOR
MySQL extension
PLUGIN_DESCRIPTION
MySQL extension
Примечания:
Таблица PLUGINS ненормативная. Это было добавлено в MySQL 5.1.5.
9.18. Таблица INFORMATION_SCHEMA ENGINES
Таблица ENGINES обеспечивает информацию относительно типов памяти.
INFORMATION_SCHEMA
Name
SHOW
Name
Remarks
ENGINE
Engine
MySQL extension
SUPPORT
Support
MySQL extension
COMMENT
Comment
MySQL extension
TRANSACTIONS
Transactions
MySQL extension
XA
XA
MySQL extension
SAVEPOINTS
Savepoints
MySQL extension
Примечания:
Таблица ENGINES ненормативная. Это было добавлено в MySQL 5.1.5.
9.19. Таблица INFORMATION_SCHEMA PARTITIONS
Таблица PARTITIONS обеспечивают информацию относительно разделов таблицы.
INFORMATION_SCHEMA
Name
SHOW
Name
Remarks
TABLE_CATALOG
MySQL extension
TABLE_SCHEMA
MySQL extension
TABLE_NAME
MySQL extension
PARTITION_NAME
MySQL extension
SUBPARTITION_NAME
MySQL extension
PARTITION_ORDINAL_POSITION
MySQL extension
SUBPARTITION_ORDINAL_POSITION
MySQL extension