2011-08-29 52 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)。