首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有声明的MySQL动态查询

带有声明的MySQL动态查询
EN

Stack Overflow用户
提问于 2011-12-06 19:02:35
回答 1查看 2.3K关注 0票数 0

我想问一下,是否有可能在动态查询中使用DECLARE变量。

即:

代码语言:javascript
复制
CREATE PROCEDURE `storedProcedureName`()
    DETERMINISTIC
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN

    SET @i = 0;

    PREPARE dynamicQuery FROM 'DECLARE x INT(11);';
    EXECUTE dynamicQuery;

    PREPARE dynamicQuery FROM 'SET x := ?;';
    EXECUTE dynamicQuery USING @i;

    DEALLOCATE PREPARE dynamicQuery;

    /* More Queries Here */

END

但是我得到了语法错误:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE x INT(11)' at line 1

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-06 19:20:45

  • First - DECLARE只允许在BEGIN ...END compound statement.
  • Second -并非所有状态都可以在PREPARE语句中使用,请在此处查看更多详细信息- Prepared Statements.

但你可以用这样的东西-

代码语言:javascript
复制
SET @text = 'something';
SET @var = NULL;
SET @query = 'SELECT ? INTO @var';
PREPARE s FROM @query;
EXECUTE s USING @text;
DEALLOCATE PREPARE s;

SELECT @var;
+-----------+
| @var      |
+-----------+
| something |
+-----------+
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8398838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档