分类: 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: NULLTRIGGER_SCHEMA: test TRIGGER_NAME: ins_sum EVENT_MANIPULATION: INSERTEVENT_OBJECT_CATALOG: NULL EVENT_OBJECT_SCHEMA: test EVENT_OBJECT_TABLE: account ACTION_ORDER: 0ACTION_CONDITION: NULLACTION_STATEMENT: SET @sum = @sum + NEW.amount ACTION_ORIENTATION: ROW ACTION_TIMING: BEFOREACTION_REFERENCE_OLD_TABLE: NULLACTION_REFERENCE_NEW_TABLE: NULL ACTION_REFERENCE_OLD_ROW: OLD ACTION_REFERENCE_NEW_ROW: NEWCREATED: NULL1 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 SETSHOW COLLATIONSHOW COLUMNSSHOW DATABASESSHOW FUNCTION STATUSSHOW KEYSSHOW OPEN TABLESSHOW PROCEDURE STATUSSHOW STATUSSHOW TABLE STATUSSHOW TABLESSHOW 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。原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。