MySQL 5.5中用户定义的表变量?

时间:2011-08-29 06:03:12

标签: mysql stored-procedures routines

我最近从MSSQL迁移到了MySQL。

我想在MySQL 5.5存储例程中使用表变量(或等效的)来填充在线报告的数据集。

在MS SQL中,我会这样做

...
...
DECLARE @tblName TABLE
WHILE <condition>
BEGIN
    Insert Row based on iteration value
END
...
...

根据我的理解,我无法在MySQL中声明表变量(如果我错了,请纠正我)如何在MySQL存储过程中实现上述逻辑?

3 个答案:

答案 0 :(得分:1)

您可以创建一个表或临时表,并使用您需要的数据填充它。

CREATE TABLE Syntax

答案 1 :(得分:0)

您正确理解该限制。 MySQL用户手册明确指出用户定义的变量不能引用表: http://dev.mysql.com/doc/refman/5.5/en/user-variables.html

  

用户变量旨在提供数据值。它们不能直接在SQL语句中用作标识符或标识符的一部分,例如在需要表或数据库名称的上下文中,或作为SELECT等保留字。

答案 2 :(得分:-1)

我认为this涵盖了它。此外,this可能会有所帮助。