declare
row_id
int
;
--
自定义变量1
declare
row_num
int
;
--
自定义变量2
declare
done
INT
DEFAULT
FALSE;
--
声明done 状态为False
declare
temp
int
;
declare
my_cursor
CURSOR
FOR
select
id,num
from
A;
--
声明游标
declare
CONTINUE
HANDLER
FOR
NOT
FOUND
SET
done
=
TRUE;
--
当没有数据时,done为True
open
my_cursor;
--
打开游标局部
xxoo: LOOP
fetch
my_cursor
into
row_id,row_num;
--
取一行的数据
if
done
then
leave xxoo;
END
IF
;
set
temp
=
row_id
+
row_num;
insert
into
B(
number
)
values
(
temp
);
end
loop xxoo;
close
my_cursor;
end
//
delimter ;
注意:性能低,能不用就不用,对每一行数据进行单独操作,用游标
6、动态执行sql(防止sql注入)
delimiter //
create procedure p6(
in tpl varchar(255),
in arg int
begin
set @xo = arg;
PREPARE xxx FROM 'select * from student where sid > ?'; --xxx是变量,任意命名,
EXECUTE xxx USING @xo; -- 与上面的SQL语句结合,格式化语句 @xo要是session的变量
DEALLOCATE prepare prod; --执行格式化语句
end //
delimter ;
防sql注入
pymysql 和 动态执行mysql