首页 > 编程知识 正文

mysql动态执行sql,为什么要用动态sql语句

时间:2023-05-06 13:47:53 阅读:120657 作者:99

语法上,MySQL和slq服务器还是有很大的区别。

看看mysql和sqlServer在动态SQL、游标和操作方面的区别。

===========动态SQL========================

在sqlServer上,动态SQL使用关键字execute或sp_executesql执行

但是,在Mysql中并非如此,所以让我们来看看Mysql中正在运行动态SQL

set@queryTest='select*fromtest ';

preparestmtfrom@queryTest;

执行脚本;

deallocatepreparesmtm;

===========mysql光标

游标还必须在mysql和SQLServer上执行五个步骤。

但是有区别。

1 .光标声明

2 .声明光标结束变量

3 .打开光标

4 .遍历光标

5 .关闭光标

具体例子如下。

值得注意的是,MySQL没有块这个概念。 也就是说,不能单独执行游标、循环和判断等语句

中选择所需的墙类型。 例如,如sp或函数,

分隔符$ $

createproceduresp_curosr ()

比根

declarecurcursorforselectidfromtestwhereid 100; -声明光标

dclarecontinuehandlerfornotfoundsetdone=1- -定义遍历结束变量

declarenidint;

opencur; 打开光标

fetchcurintonid; -读取光标

whiledone=0do

deletefromtestwhereid=nid;

fetchcurintonid;

结束车轮;

关闭Cur; -关闭光标

结束;

$$delimiter;

以上是MySQL的游标语法。

需要注意的地方:

1 .在1.MySQL中使用declare声明的标量必须位于对象的顶部。

2 .上述步骤2可由以下案文取代:

declarecontinuehandlerforsqlstate ' 02000 ' set done=1

大致意思是,在fetch无法读取数据时,将done设定为1,

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。