Недавно я перешел с MSSQL на MySQL.

Я хотел бы использовать табличную переменную (или эквивалент) внутри хранимой процедуры MySQL 5.5, чтобы заполнить набор данных для онлайн-отчета.

В MS SQL я бы сделал это так

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

Насколько я понимаю, я не могу объявлять переменные таблицы в MySQL (поправьте меня, если я ошибаюсь). Как мне реализовать приведенную выше логику в хранимой процедуре MySQL?

2
colonel_px 29 Авг 2011 в 10:03

3 ответа

Лучший ответ

Вы можете создать таблицу или временную таблицу и заполнить ее необходимыми данными.

CREATE TABLE Синтаксис

1
Devart 29 Авг 2011 в 06:40

Вы правильно понимаете это ограничение. В руководстве пользователя MySQL четко указано, что пользовательские переменные не могут ссылаться на таблицу: http://dev.mysql.com/doc/refman/5.5 /en/user-variables.html

Пользовательские переменные предназначены для предоставления значений данных. Их нельзя использовать непосредственно в операторе SQL как идентификатор или как часть идентификатора, например, в контекстах, где ожидается имя таблицы или базы данных, или как зарезервированное слово, такое как SELECT.

0
alanng 29 Дек 2014 в 03:35

Я думаю, что это покрывает это. Также может оказаться полезным это.

-1
Community 23 Май 2017 в 12:06