首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL 5.5中的用户定义表变量?

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

Stack Overflow用户
提问于 2011-08-29 14:03:12
回答 4查看 7.8K关注 0票数 2

我最近从MSSQL转到了MySQL。

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

在MS SQL中,我会这样做

代码语言:javascript
复制
...
...
DECLARE @tblName TABLE
WHILE <condition>
BEGIN
    Insert Row based on iteration value
END
...
...

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-29 14:40:58

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

CREATE TABLE Syntax

票数 1
EN

Stack Overflow用户

发布于 2014-12-29 11:35:41

您正确地理解了这一限制。http://dev.mysql.com/doc/refman/5.5/en/user-variables.html用户手册清楚地指出,用户定义的变量不能引用表

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

票数 0
EN

Stack Overflow用户

发布于 2021-10-17 09:13:20

创建临时表tmp ( id int unsigned not null,name varchar(32) not null ) engine=memory;--如果需要,更改引擎类型,例如myisam/innodb

插入到tmp (id,name) select id,name from foo...;

--做更多的工作...

select * from tmp order by id;

如果存在临时表,则删除临时表;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7226658

复制
相关文章

相似问题

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