2011-08-29 50 views
2

我最近从MSSQL转移到MySQL。MySQL 5.5中用户定义的表变量?

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

在MS SQL,我会做这样

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

据我了解,我不能在MySQL(纠正我,如果我错了)我如何落实上述声明表变量MySQL存储过程中的逻辑?

回答

1

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

CREATE TABLE Syntax

+0

谢谢,我会试试看,并回来。 –

+0

这确实是我一直在寻找的:-)谢谢! –

+0

公平起见,OP可能不知道这一点,但创建表或临时表与MS SQL中的“声明@tblName表”不同。后者与临时表有一些细微的区别:http://stackoverflow.com/questions/27894/whats-the-difference-between-a-temp-table-and-table-variable-in-sql-server – Milimetric

-1

我觉得this覆盖它。另外,this可能会有所帮助。

0

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

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