資料
配置
備份
INFORMATION_SCHEMA信息數(shù)據(jù)庫(kù)
** infomation_schema**
INFORMATION_SCHEMA提供了訪問(wèn)數(shù)據(jù)庫(kù)元數(shù)據(jù)的方式。
存儲(chǔ)過(guò)程
變量
變量聲明
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語(yǔ)句包含一個(gè)對(duì)列的參考,并包含一個(gè)與列相同名字的 局部變量,MySQL當(dāng)前把參考解釋為一個(gè)變量的名字。例如,在下面的語(yǔ)句中,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;
當(dāng)這個(gè)程序被調(diào)用的時(shí)候,無(wú)論table.xname列的值是什么,變量newname將返回值‘bob’。
打印
select varname;
- 動(dòng)態(tài)sql
循環(huán)光標(biāo)
光標(biāo)用于指定查詢結(jié)果,經(jīng)常與循環(huán)一起使用。
/** 聲明光標(biāo) **/
DECLARE cur_1 CURSOR FOR select table_schema,table_name,column_name from information_schema.COLUMNS where data_type='varchar';
/** 當(dāng)光標(biāo)中無(wú)數(shù)據(jù)時(shí)變量b值變成1**/
DECLARE CONTINUE HANDLER FOR NOT FOUND SET b = 1;
/** 打開(kāi)光標(biāo)**/
OPEN cur_1;
REPEAT
/** 讀取下一行(如果有下一行的話),并且前進(jìn)光標(biāo)指針。**/
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;
/** 關(guān)閉光標(biāo),如果未被明確地關(guān)閉,光標(biāo)在它被聲明的復(fù)合語(yǔ)句的末尾被關(guān)閉。**/
close cur_1;
其它
拼接字符串
concat(str,str1,...)