如何执行字串中的SQL语句,假设如下:
DECLARE strsql varchar(256);
DECLARE tablename varchar(32);
set tablename = '`test`.tb1';
set strsql = CONCAT('delete from ', tablename );
execute strsql;上面的写法到execute strsql;这一步就出错了,
该如何实现?
DECLARE strsql varchar(256);
DECLARE tablename varchar(32);
set tablename = '`test`.tb1';
set strsql = CONCAT('delete from ', tablename );
execute strsql;上面的写法到execute strsql;这一步就出错了,
该如何实现?
解决方案 »
- 一个查询SQL难到我了,谢谢了
- mysql怎么做到空值不更新?
- 有没有比较好的办法横向合并查询结果
- 求教:MYSQL的数据恢复
- 在数据库中有两条相同记录,怎么修改其中的一条而不影响另一条
- 求教一个让我郁闷半天的问题~在线等,急~~=====
- MYSQL源代码如何编译?
- 请问~~我怎么没有在d版市场上见过mysql啊~~有的话给我介绍一下是什么样子的~~
- 在系统变量未做调整,数据库连接数一般不超过50的情况下,MySQL内存占用为何会逐日增加?
- 用tomcat5.0,使用哪个版本的mysql比较好
- mysql5.1.x 的版本使用调查
- mysql三天两头出错打不开,帮忙看看是什么问题,已经添加my.ini配置文件
EXECUTE stmt1
DEALLOCATE PREPARE stmt1;
手册中的例子如下。
DECLARE tablename varchar(32);
set tablename = '`test`.tb1';
set @strsql = CONCAT('delete from ', tablename );PREPARE stmt1 FROM @strsql;
EXECUTE stmt1
DEALLOCATE PREPARE stmt1;
BEGINDECLARE tablename VARCHAR(32);
SET tablename = '`test`.tb1';
SET @strsql = CONCAT('select * from ', tablename );PREPARE sqlstmt FROM @strsql;
EXECUTE sqlstmt;
DEALLOCATE PREPARE sqlstmt; END$$DELIMITER ;
这样可以
set tablename = '`test`.tb1';
set @strsql = CONCAT('delete from ', tablename );
prepare stmt from @strsql;
execute stmt;
deallocate prepare stmt;
prepare stmt from @strsql;
不能
prepare stmt from strsql;
写