MySQL学习笔记(十三)—— MySQL的命令集(3)
时间:2008-06-05 来源:lavostar
6) 更改表空间
ALTER TABLESPACE tablespace
ADD DATAFILE ‘file’
INITIAL_SIZE = size
ENGINE = engine
ALTER TABLESPACE tablespace
DROP DATAFILE ‘file’
ENGINE = engine
修改支持指定表空间的文件结构。size表示表空间的初始大小(字节)。该命令仅适用于NDBCLUSTER表。
7) 更改视图
ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]
VIEW name [(columns)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
修改数据库视图。执行该命令类似于删除并创建新的视图,需要同时拥有CREATE VIEW和DROP权限。
8) 分析表
ANALYZE TABLE table1, table2, …, tablen
对于MyISAM、InnoDB和BDB表,获取读锁并执行分析。分析将检查表的关键字分布情况,分析结果集包含如下几个部分:
⑴Table:表名称
⑵Op:值分析
⑶Msg_type:消息类型:状态、错误或警告
⑷Msg_text:分析后返回的消息。
9) 启动(事务)、定义存储过程
BEGIN [WORK]
[begin_label:] BEGIN statements END [end_label]
第一种格式启动新的事务。事务通过COMMIT语句或其他隐含提交的命令(如CREATE TABLE)来提交,如果需要对事务进行滚回,可使用ROLLBACK命令。START TRANSACTION与第一种BEGIN格式同义。第二种格式包含定义了存储过程的一组新语句,它一般接在CREATE PROCEDURE之后。如果使用了开始标记,则必须使用与其匹配的结束标记。在BEGIN/END之间的每条语句必须用分号结束,因此,如果需要改变分隔符,应在BEGIN之前执行。
示例:
⑴BEGIN
UPDATE person SET last_name ‘Ming’ WHERE person_id = 1;
UPDATE address SET city = ‘Beijing’ WHERE person = 1;
COMMIT;
⑵DELIMITER //
CREATE PROCEDURE person_counter (OUT pcount INT)
BEGIN
SELECT COUNT(*) INTO pcount FROM person;
END
//
DELIMITER;
10) 调用存储过程
CALL procedure [([parameter [, …]])]
用相关参数调用指定的存储过程。
示例:CALL person_counter ( @pcount );
SELECT @pcount;
相关阅读 更多 +