Как объявить внутреннюю таблицу в MySQL? - PullRequest
1 голос
/ 13 января 2011

Я хочу знать, как определить или объявить внутреннюю таблицу в MySQL

Я новичок в MySQL и не знаю синтаксис

как видите, я создаю хранимую процедуру

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

в Sql Server я делаю это так

declare  @tbTemp table (
 a as int,
 b as char...etc.
)

потому что я хочу поместить оператор вставки после

IF actioncode = 1
    Insert into @tbTemp

поэтому, пожалуйста, если вы знаете, скажите мне, как

С наилучшими пожеланиями для каждого.

Ответы [ 2 ]

4 голосов
/ 13 января 2011
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;

или

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;
0 голосов
/ 13 января 2011

Вы имеете в виду CREATE TEMPORARY TABLE? Это таблица в памяти, относящаяся к соединению, на котором выполняется оператор, поэтому, если вы не используете постоянные соединения, у вас нет проблем с конфликтами имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...