如何执行字串中的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;这一步就出错了,
该如何实现?
解决方案 »
- Linux下安装MYSQL后,启动mysql显示如下错误
- 请教,在安装mysql 选择编码格式的时候 选择啥才能避免中文乱码?
- order by 和where 的顺序不会影响执行起来先筛选再排序的操作把
- Mysql有NChar类型?
- mysql还原数据库出错
- 编译Embedded mysql 客户端出现问题
- 编写一个MYSQL存储过程,要求使用事物机制,完成简单的数据写入和统计功能
- 我用UPDATE更新某行某列的时候,它也帮我更新了我没指定的该行的某列~~
- mysql_insert_id怎么用?
- 奇怪!日期类型与任意字符串比较都能成功执行.
- 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;
写