mysql - 在 mysql workbench 6.2 中使用声明@语法错误意外

标签 mysql

我的数据库使用 mysql workbench 6.2。

我创建了执行查询字符串的过程,但变量“declare @str varchar(2000)”出现“意外语法错误”错误。我尝试删除变量中的“@”,但它在“PREPARE stmt FROM str;”行中无效。它通知错误“意外的 str

这是我的代码:

CREATE DEFINER=`root`@`localhost` PROCEDURE `new_procedure`()
BEGIN
declare @str varchar(2000) DEFAULT '';
set @str = 'select * from category;';
PREPARE stmt FROM @str;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END

最佳答案

未声明 session 变量。你不需要(也不能做)

DECLARE @str varchar(2000) DEFAULT '';

仅需要您已有的套件

SET @str = 'select * from category;';

顺便说一句,在这种情况下最好将 session 变量命名为唯一的名称(以防调用过程的连接已使用其他名称的简单名称)。

关于mysql - 在 mysql workbench 6.2 中使用声明@语法错误意外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31544247/

相关文章:

java - mysql show processlist 显示 11 个永不消失的连接

mysql - 连接表大量增长

MySQL,按字母顺序排序,但有异常(exception)

MySQL查询从表中获取ID存在于另一个查询中的字段

php - mysql - 从两个表中选择多列值

带前缀的 MySQL 输出 *

php - 我有查询检索 WordPress 中的所有帖子,但如何检查帖子 meta_key =“develop” 和 meta_value ='anything' 的条件

如果太长,Mysql 会转换整数

mysql - 我可以拥有一个自动从同一数据库中的 2 个或更多表获取数据的 MYSQL 表吗?

php - Mysql 搜索带有特殊字符的查询