分类: Mysql/postgreSQL
2008-05-12 15:02:10
ROUTINES表提供了关于存储子程序(存储程序和函数)的信息。此时,ROUTINES表不包含自定义函数(UDF)。
名为“mysql.proc name”的列指明了对应于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列,如果有的话。
标准名称 |
mysql.proc名 |
注释 |
SPECIFIC_NAME |
specific_name |
|
ROUTINE_CATALOG |
|
NULL |
ROUTINE_SCHEMA |
db |
|
ROUTINE_NAME |
name |
|
ROUTINE_TYPE |
type |
{PROCEDURE|FUNCTION} |
DTD_IDENTIFIER |
|
(数据类型描述符) |
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扩展 |
ROUTINE_COMMENT |
comment |
MySQL扩展 |
DEFINER |
definer |
MySQL扩展 |
注释:
· MySQL计算EXTERNAL_LANGUAGE,因此:
o 如果mysql.proc.language='SQL',那么EXTERNAL_LANGUAGE为NULL。
o 否则,EXTERNAL_LANGUAGE为mysql.proc.language中的值。然而,由于尚没有外部语言,因此该值总为NULL。
VIEWS表给出了关于数据库中的视图的信息。
标准名称 |
SHOW名称 |
注释 |
TABLE_CATALOG |
|
NULL |
TABLE_SCHEMA |
|
|
TABLE_NAME |
|
|
VIEW_DEFINITION |
|
|
CHECK_OPTION |
|
|
IS_UPDATABLE |
|
|
DEFINER |
|
|
SECURITY_TYPE |
|
|
注释:
· 有一种新的权限SHOW VIEW,如果没有它,将无法看到VIEWS表。
· VIEW_DEFINITION列含有你在SHOW CREATE VIEW所生成的Create Table字段中见到的大多数信息。跳过SELECT前的单词,并跳过具有CHECK OPTION(检查选项)的单词。例如,如果初始语句是:
· CREATE VIEW v AS
· SELECT s2,s1 FROM t
· WHERE s1 > 5
· ORDER BY s1
· WITH CHECK OPTION;
那么视图定义为:
SELECT s2,s1 FROM t WHERE s1 > 5 ORDER BY s1
· CHECK_OPTION列的值总为NONE。
· 如果视图是可更新的,IS_UPDATABLE列的值为YES,如果视图是不可更新的,IS_UPDATABLE列的值为NO。
· DEFINER列指明了定义视图的人。SECURITY_TYPE的值为DEFINER或INVOKER。
TRIGGERS表提供了关于触发程序的信息。
必须有SUPER权限才能查看该表。
标准名称 |
SHOW名称 |
注释 |
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 |
|
|
注释:
· TRIGGER_SCHEMA和TRIGGER_NAME列中分别含有相应数据库的名称以及触发程序的名称,在该数据库中,含有该触发程序。
· EVENT_MANIPULATION列含有下述值之一:INSERT、DELETE、或UPDATE。
· 正如第21章:触发程序中指出的那样,每个触发程序均与一个表准确相关。EVENT_OBJECT_SCHEMA和EVENT_OBJECT_TABLE列包含相应的数据库和表名,在该数据库中,含有该表。
· ACTION_ORDER语句含有触发程序动作(在相同表上所有类似触发程序列表中)的顺序位置。目前该值总为0,这是因为在相同表上具有相同EVENT_MANIPULATION和ACTION_TIMING的触发程序不能超过1个。
· ACTION_STATEMENT列含有激活了触发程序时将要执行的语句。这与SHOW TRIGGERS输出的Statement(语句)列中显示的文本相同。注意,该文本采用了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模式为何,只要激活了触发程序,它将保持有效)。该列的可能取值范围与sql_mode系统变量的取值范围相同。请参见5.3.2节,“SQL服务器模式”。
· 在下述列中,目前总含有NULL:TRIGGER_CATALOG,EVENT_OBJECT_CATALOG,ACTION_CONDITION,ACTION_REFERENCE_OLD_TABLE,ACTION_REFERENCE_NEW_TABLE和CREATED。
例如,使用21.3节,“使用触发程序”中定义的触发程序ins_sum。
mysql> SELECT * FROM INFORMATION_SCHEMA.TRIGGERS\G
*************************** 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
1 row in set (1.54 sec)
某些SHOW语句的扩展伴随着INFORMATION_SCHEMA的实施:
· SHOW可用于获取关于INFORMATION_SCHEMA本身结构的信息。
· 一些SHOW语句允许使用WHERE子句,这样,在指定需要显示的行时,可更为灵活。
INFORMATION_SCHEMA是一种信息数据库,因此,在SHOW DATABASES的输出中,包含其名称。与此类似,SHOW TABLES可与INFORMATION_SCHEMA一起使用,以获取表清单。
mysql> SHOW TABLES FROM INFORMATION_SCHEMA;
+---------------------------------------+
| Tables_in_information_schema|
+---------------------------------------+
| SCHEMATA|
| TABLES|
| COLUMNS |
| CHARACTER_SETS |
| COLLATIONS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| ROUTINES|
| STATISTICS |
| VIEWS |
| TRIGGERS|
| USER_PRIVILEGES|
| SCHEMA_PRIVILEGES |
| TABLE_PRIVILEGES|
| COLUMN_PRIVILEGES |
| TABLE_CONSTRAINTS |
| KEY_COLUMN_USAGE|
+---------------------------------------+
SHOW COLUMNS和DESCRIBE能够显示单独INFORMATION_SCHEMA表中的列信息。
扩展了一些SHOW语句,允许使用WHERE子句:
SHOW CHARACTER SET
SHOW COLLATION
SHOW COLUMNS
SHOW DATABASES
SHOW FUNCTION STATUS
SHOW KEYS
SHOW OPEN TABLES
SHOW PROCEDURE STATUS
SHOW STATUS
SHOW TABLE STATUS
SHOW TABLES
SHOW VARIABLES
如果有WHERE子句的话,将根据SHOW语句显示的列名进行计算。例如,SHOW COLLATION语句可产生这些输出列:
例如,SHOW CHARACTER SET语句可产生这些输出列:
mysql> SHOW CHARACTER SET;
Charset |
描述 |
默认校对 |
最大长度 |
big5 |
Big5 Traditional Chinese |
big5_chinese_ci |
2 |
dec8 |
DEC West European |
dec8_swedish_ci |
1 |
cp850 |
DOS West European |
cp850_general_ci |
1 |
hp8 |
HP West European |
hp8_english_ci |
1 |
koi8r |
KOI8-R Relcom Russian |
koi8r_general_ci |
1 |
latin1 |
cp1252 West European |
latin1_swedish_ci |
1 |
latin2 |
ISO 8859-2 Central European |
latin2_general_ci |
1 |
要想与SHOW CHARACTER SET一起使用WHERE子句,应引用这些列名称。例如,在下面的语句中,给出了用于默认校对且含有字符串“japanese”的字符集的信息:
mysql> SHOW CHARACTER SET WHERE `Default collation` LIKE '%japanese%';
Charset |
描述 | 默认校对 |
最大长度 |
ujis |
EUC-JP Japanese |
ujis_japanese_ci |
3 |
sjis |
Shift-JIS Japanese |
sjis_japanese_ci |
2 |
cp932 |
SJIS for Windows Japanese |
cp932_japanese_ci |
2 |
eucjpms |
UJIS for Windows Japanese |
eucjpms_japanese_ci |
3 |
该语句显示了多字节字符集。
mysql> SHOW CHARACTER SET WHERE Maxlen > 1;
Charset |
描述 |
默认校对 |
最大长度 |
big5 |
Big5 Traditional Chinese |
big5_chinese_ci |
2 |
ujis |
EUC-JP Japanese |
ujis_japanese_ci |
3 |
sjis |
Shift-JIS Japanese |
sjis_japanese_ci |
2 |
euckr |
EUC-KR Korean |
euckr_korean_ci |
2 |
gb2312 |
GB2312 Simplified Chinese |
gb2312_chinese_ci |
2 |
gbk |
GBK Simplified Chinese |
gbk_chinese_ci |
2 |
utf8 |
UTF-8 Unicode |
utf8_general_ci |
3 |
ucs2 |
UCS-2 Unicode |
ucs2_general_ci |
2 |
cp932 |
SJIS for Windows Japanese |
cp932_japanese_ci |
2 |
eucjpms |
UJIS for Windows Japanese |
eucjpms_japanese_ci |
3 |
这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问dev.mysql.com。原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。