drop procedure if exists add_column_if;
delimiter $$
create procedure add_column_if()
begin
declare
iCnt int
select count(*) into iCnt from information_schema.columns
where table_schema=(select database())
and table_schema='BONDCONTRACE_TEST'
andcolumn_name='AAA'
if (iCnt=0) then
alter table bondcontrac_test add AAA varchar(10) default null
end if
end
call add_column_if
drop procedeure add_column_if$$
delimiter
加索引
drop procedure if exits add_index_id
delimiter $$
create procedure add_index()
begin
declare iCint int
select count(*) from information_schema.statistcs
where table_schema=''
and table_name=''
and index_name=''
and column_name in ('','')
if (iCint=0) then
alter table tablename add key index_name('','')
end if
end'
call add_index_if
drop procedure add_index_if$$
delimiter
MySQL不支持FOR loops循环。
只有LOOP循环:
[begin_label:] LOOP
statement_list
END LOOP [end_label]
CREATE PROCEDURE doiterate(p1 INT)
BEGIN
label1: LOOP
SET p1 = p1 + 1
IF p1 <10 THEN
ITERATE label1
END IF
LEAVE label1
END LOOP label1
SET @x = p1
END
LOOP实现了一个简单的循环结构,允许重复执行语句列表,该列表由一个或多个语句组成,每个语句以分号()分隔符结束。 循环中的语句将重复执行,直到循环终止。 一般情况,通过LEAVE终止循环。 在函数中,也可以使用RETURN,它完全退出函数,也同时终止循环。
扩展资料
mysql流程控制结构:
顺序结构:程序从上往下依次执行,
分支结构:程序从两条或多条路径中选中一条去执行,
循环结构:程序在满足一定条件的基础上,重复执行一段代码。
分支结构
1、if函数
功能:实现简单的双分支
语法:
if(表达式1,表达式2,表达式3)
执行顺序:
如果表达式1成立,则if函数返回表达式2的值,否则返回表达式3的值
应用:任何地方(在begin end中或外面都可以)
2、case结构
情况1:类似于java中的switch语句,一般用于实现等值判断
语法:
CASE 变量|表达式|字段
WHEN 要判断的值 THEN 返回的值1或语句1
WHEN 要判断的值 THEN 返回的值2或语句2
...
ELSE 要返回的值n或语句n
END CASE
情况2:类似于java中的多重IF语句,一般用于实现区间判断
语法;
CASE
WHEN 要判断的条件1 THEN 返回的值1或语句1
WHEN 要判断的条件2 THEN 返回的值2或语句2
...
ELSE 要返回的值n或语句n
END CASE
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)