资料
配置
备份
INFORMATION_SCHEMA信息数据库
** infomation_schema**
INFORMATION_SCHEMA提供了访问数据库元数据的方式。
存储过程
变量
变量声明
DECLARE var_name[,...] type [DEFAULT value]
变量赋值
SET var_name = expr [, var_name = expr] ...
SELECT col_name[,...] INTO var_name[,...] table_expr
重要: SQL变量名不能和列名一样。如果SELECT … INTO这样的SQL语句包含一个对列的参考,并包含一个与列相同名字的 局部变量,MySQL当前把参考解释为一个变量的名字。例如,在下面的语句中,xname 被解释为到xname variable 的参考而不是到xname column的:
CREATE PROCEDURE sp1 (x VARCHAR(5))
BEGIN
DECLARE xname VARCHAR(5) DEFAULT 'bob';
DECLARE newname VARCHAR(5);
DECLARE xid INT;
SELECT xname,id INTO newname,xid
FROM table1 WHERE xname = xname;
SELECT newname;
END;
当这个程序被调用的时候,无论table.xname列的值是什么,变量newname将返回值‘bob’。
打印
select varname;
- 动态sql
循环光标
光标用于指定查询结果,经常与循环一起使用。
/** 声明光标 **/
DECLARE cur_1 CURSOR FOR select table_schema,table_name,column_name from information_schema.COLUMNS where data_type='varchar';
/** 当光标中无数据时变量b值变成1**/
DECLARE CONTINUE HANDLER FOR NOT FOUND SET b = 1;
/** 打开光标**/
OPEN cur_1;
REPEAT
/** 读取下一行(如果有下一行的话),并且前进光标指针。**/
FETCH cur_1 INTO table_schemas,table_names,column_names; /*获取第一条记录*/
if b<>1 then
set dongtaisql = CONCAT(dongtaisql,'\n update');
end if;
UNTIL b END REPEAT;
/** 关闭光标,如果未被明确地关闭,光标在它被声明的复合语句的末尾被关闭。**/
close cur_1;
其它
拼接字符串
concat(str,str1,…)