首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL中声明内部表?

如何在MySQL中声明内部表?
EN

Stack Overflow用户
提问于 2011-01-13 22:04:07
回答 2查看 9K关注 0票数 2

我想知道如何在MySQL中定义或声明内部表

我是MySQL新手,我不知道它的语法

如您所见,我创建了存储过程

代码语言:javascript
复制
CREATE DEFINER=`root`@`localhost` PROCEDURE `MySP`(
    actioncode VARCHAR(5),
    TNewsID BIGINT
)

BEGIN

IF actioncode = 1 then -- Retrive all from the database --
    select *
    from emp.tbnews;
elseIF actioncode = 2 then -- Retrive all from the database By NewsID --
    select NewsID,NewsSubject,NewsSubjectAR,NewsDetails,NewsDetailsAR,CreatedOn,DisplayOrder,
           AllowDisplay,img  
    from emp.tbnews
    Where NewsID=TNewsID;
elseIF actioncode = 3 then -- fkjskldfjklsdf --
    select NewsID,NewsSubject,NewsSubjectAR,NewsDetails,NewsDetailsAR,CreatedOn,DisplayOrder,
           AllowDisplay,img  
    from emp.tbnews;

 END IF;
 END

我真正想要的是在IF语句之前声明Internal table

在Sql Server中,我是这样做的

代码语言:javascript
复制
declare  @tbTemp table (
 a as int,
 b as char...etc.
)

因为我想把insert语句放在

代码语言:javascript
复制
IF actioncode = 1
    Insert into @tbTemp

所以如果你知道请告诉我怎么做

向每一个人致以最美好的问候。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-13 22:31:06

代码语言:javascript
复制
create temporary table tmp
(
id int unsigned not null,
name varchar(32) not null
)
engine=memory; -- change engine type if required e.g myisam/innodb

insert into tmp (id, name) select id, name from foo... ;

-- do more work...

select * from tmp order by id;

drop temporary table if exists tmp;

代码语言:javascript
复制
create temporary table tmp engine=memory select id, name from foo... ;

-- do more work...

select * from tmp order by id;

drop temporary table if exists tmp;
票数 5
EN

Stack Overflow用户

发布于 2011-01-13 22:11:30

你是说CREATE TEMPORARY TABLE吗?这是一个特定于运行语句的连接的内存中的表,因此,除非您运行的是持久连接,否则不必担心名称冲突。

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

https://stackoverflow.com/questions/4680886

复制
相关文章

相似问题

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