mysql中如何连续动态执行两条sql语句

c_sdn_shang_bu_qi 2014-09-03 09:45:22
SET @ZXDZS = CONCAT('SELECT PL',CR_INVKNAME,'VLINK();');----这里得到一个执行一个函数语句select PLPVLINK();
PREPARE stmt FROM @ZXDZS;
EXECUTE stmt; --执行函数后得到一个插入语句insert into aa;
DEALLOCATE PREPARE stmt;

想请教下,执行EXECUTE stmt; 后怎么样才可以立刻也执行插入语句insert into aa;
动态执行那种情况
...全文
1183 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
heggychan 2015-06-29
  • 打赏
  • 举报
回复
我的想法是这样的 在拼接sql语句的时候 就例如 concat(set @getsql = ........) 那么当你 execute时候 同样有个变量被赋了值 这时候@getsql 就相当于拿到了你想返回的sql语句了 好select @getsql 看返回得对不对
RUNNINGXUAN 2014-12-27
  • 打赏
  • 举报
回复
请问一下这个问题解决了吗,我也碰到类似的问题!
CREATE TEMPORARY TABLE IF NOT EXISTS tmp201412270843(id INT PRIMARY KEY AUTO_INCREMENT,namee VARCHAR(1000));
SET @sqltxt='insert into tmp201412270843(namee)values(\'wangxiaoxuan\');SELECT * FROM tmp201412270843;';
PREPARE mysql FROM @sqltxt;EXECUTE mysql;

这个要是一次执行会报语法错误!请高手指点!
c_sdn_shang_bu_qi 2014-09-03
  • 打赏
  • 举报
回复
引用 7 楼 mchdba 的回复:
[quote=引用 6 楼 c_sdn_shang_bu_qi 的回复:] [quote=引用 4 楼 mchdba 的回复:] [quote=引用 2 楼 c_sdn_shang_bu_qi 的回复:] [quote=引用 1 楼 mchdba 的回复:] 在下面再声明一个: PREPARE stmt2 FROM @ZXDZS; EXECUTE stmt2;
还 是不行啊 是这样?? PREPARE stmt FROM @ZXDZS; EXECUTE stmt; --执行函数后得到一个插入语句insert into aa; PREPARE stmt2 FROM @ZXDZS; EXECUTE stmt2; DEALLOCATE PREPARE stmt;[/quote] 嗯,你试试看。[/quote] 试过了,还是原来的效果[/quote] PREPARE stmt FROM @ZXDZS; EXECUTE stmt; --执行函数后得到一个插入语句insert into aa; DEALLOCATE PREPARE stmt; PREPARE stmt2 FROM @ZXDZS; EXECUTE stmt2; DEALLOCATE PREPARE stmt2; 你再试试看。 [/quote] 不行 哦,还是会返回一堆插入语句,但不执行插入
九月茅桃 2014-09-03
  • 打赏
  • 举报
回复
引用 6 楼 c_sdn_shang_bu_qi 的回复:
[quote=引用 4 楼 mchdba 的回复:] [quote=引用 2 楼 c_sdn_shang_bu_qi 的回复:] [quote=引用 1 楼 mchdba 的回复:] 在下面再声明一个: PREPARE stmt2 FROM @ZXDZS; EXECUTE stmt2;
还 是不行啊 是这样?? PREPARE stmt FROM @ZXDZS; EXECUTE stmt; --执行函数后得到一个插入语句insert into aa; PREPARE stmt2 FROM @ZXDZS; EXECUTE stmt2; DEALLOCATE PREPARE stmt;[/quote] 嗯,你试试看。[/quote] 试过了,还是原来的效果[/quote] PREPARE stmt FROM @ZXDZS; EXECUTE stmt; --执行函数后得到一个插入语句insert into aa; DEALLOCATE PREPARE stmt; PREPARE stmt2 FROM @ZXDZS; EXECUTE stmt2; DEALLOCATE PREPARE stmt2; 你再试试看。
c_sdn_shang_bu_qi 2014-09-03
  • 打赏
  • 举报
回复
引用 4 楼 mchdba 的回复:
[quote=引用 2 楼 c_sdn_shang_bu_qi 的回复:] [quote=引用 1 楼 mchdba 的回复:] 在下面再声明一个: PREPARE stmt2 FROM @ZXDZS; EXECUTE stmt2;
还 是不行啊 是这样?? PREPARE stmt FROM @ZXDZS; EXECUTE stmt; --执行函数后得到一个插入语句insert into aa; PREPARE stmt2 FROM @ZXDZS; EXECUTE stmt2; DEALLOCATE PREPARE stmt;[/quote] 嗯,你试试看。[/quote] 试过了,还是原来的效果
c_sdn_shang_bu_qi 2014-09-03
  • 打赏
  • 举报
回复
引用 3 楼 wwwwb 的回复:
直接1条语句不行?
不行,原本语句是这样的 SET ZXDZS = CONCAT('SELECT PL',CR_INVKNAME,'VLINK(\'',V_SBTYPE,'\'',',','\'',CR_GRADE,'\'',',','\'',CR_OPERATWAY,'\'',',','\'',CR_ISRNAME,'\'',',','\'',CR_PRMT,'\'',',','\'',CR_PRMC,'\'',');'); 会拼接成一个动态的调用函数的sql语句 然后执行,又返回一个插入语句。且又需要立即执行这个插入语句 不知道怎么搞
九月茅桃 2014-09-03
  • 打赏
  • 举报
回复
引用 2 楼 c_sdn_shang_bu_qi 的回复:
[quote=引用 1 楼 mchdba 的回复:] 在下面再声明一个: PREPARE stmt2 FROM @ZXDZS; EXECUTE stmt2;
还 是不行啊 是这样?? PREPARE stmt FROM @ZXDZS; EXECUTE stmt; --执行函数后得到一个插入语句insert into aa; PREPARE stmt2 FROM @ZXDZS; EXECUTE stmt2; DEALLOCATE PREPARE stmt;[/quote] 嗯,你试试看。
wwwwb 2014-09-03
  • 打赏
  • 举报
回复
直接1条语句不行?
c_sdn_shang_bu_qi 2014-09-03
  • 打赏
  • 举报
回复
引用 1 楼 mchdba 的回复:
在下面再声明一个: PREPARE stmt2 FROM @ZXDZS; EXECUTE stmt2;
还 是不行啊 是这样?? PREPARE stmt FROM @ZXDZS; EXECUTE stmt; --执行函数后得到一个插入语句insert into aa; PREPARE stmt2 FROM @ZXDZS; EXECUTE stmt2; DEALLOCATE PREPARE stmt;
九月茅桃 2014-09-03
  • 打赏
  • 举报
回复
在下面再声明一个: PREPARE stmt2 FROM @ZXDZS; EXECUTE stmt2;

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧