Пользовательские Табличные Переменные в MySQL 5.5? - PullRequest
2 голосов
/ 29 августа 2011

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

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

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

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

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

Ответы [ 3 ]

1 голос
/ 29 августа 2011

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

Синтаксис CREATE TABLE

0 голосов
/ 29 декабря 2014

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

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

0 голосов
/ 29 августа 2011

Я думаю это покрывает это. Кроме того, это может быть полезным.

...