MySQL: руководство профессионала
Шрифт:
[WHERE name LIKE 'wild']
SHOW CHARACTER SET [LIKE 'wild']
9.10. Таблица INFORMATION_SCHEMA COLLATIONS
Таблица COLLATIONS обеспечивает информацию относительно объединений для каждого набора символов.
INFORMATION_SCHEMA
Name
SHOW
Name
Remarks
COLLATION_NAME
Collation
CHARACTER_SET_NAME
Charset
MySQL extension
ID
Id
MySQL extension
IS_DEFAULT
Default
MySQL extension
IS_COMPILED
Compiled
MySQL extension
SORTLEN
Sortlen
MySQL extension
Следующие
SELECT COLLATION_NAME FROM INFORMATION_SCHEMA.COLLATIONS
[WHERE collation_name LIKE 'wild']
SHOW COLLATION [LIKE 'wild']
9.11. Таблица INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY
Таблица COLLATION_CHARACTER_SET_APPLICABILITY указывает то, какому объединению соответствует набор символов. Столбцы эквивалентны к первым двум полям вывода SHOW COLLATION.
INFORMATION_SCHEMA
Name
SHOW
Name
Remarks
COLLATION_NAME
Collation
CHARACTER_SET_NAME
Charset
9.12. Таблица INFORMATION_SCHEMA TABLE_CONSTRAINTS
Таблица TABLE_CONSTRAINTS описывает, которые таблицы имеют ограничения.
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.