一、概述
本章节介绍使用游标来批量进行表操作,包括批量添加索引、批量添加字段等。如果对存储过程、变量定义、预处理还不是很熟悉先阅读我前面写过的关于这三个概念的文章,只有先了解了这三个概念才能更好的理解这篇文章。
理解MySQL变量和条件:
理解Mysql prepare预处理语句
理解MySQL存储过程和函数:
二、正文
1、声明光标
1
DECLARE cursor_name CURSOR FOR select_statement
这个语句声明一个光标。也可以在子程序中定义多个光标,但是一个块中的每一个光标必须有唯一的名字。
注意:SELECT语句不能有INTO子句。
2、打开光标
1
DECLARE cursor_name CURSOR FOR select_statement
这个语句打开先前声明的光标。
3、前进光标
1
FETCH cursor_name INTO var_name [, var_name] …
这个语句用指定的打开光标读取下一行(如果有下一行的话),并且前进光标指针。
4、关闭光标
1
CLOSE cursor_name
这个语句关闭先前打开的光标。
5、批量添加索引
共享一个批量添加索引的游标,当一个库中有上百张表结构一样但是名称不一样的表,这个时候批量操作就变得简单了。
#删除创建存储过程
DROP PROCEDURE IF EXISTS FountTable;
DELIMITER $$
CREATE PROCEDURE FountTable()
BEGIN
DECLARE TableName varchar(64);
#声明游标
DEC