Как мне временно хранить строки в хранимой процедуре? - PullRequest
0 голосов
/ 18 ноября 2008

В сущности, я бы хотел сохранить несколько строк во временной переменной на время жизни процедуры в MySQL.

Моя процедура захватит столбец внешних ключей в начале процедуры. Когда я закончу с ними работать, я хочу обновить таблицу, чтобы указать, что они были обработаны. В эту таблицу могут быть вставки, пока моя процедура работает с ее набором данных, поэтому я не хочу ошибочно отмечать эти новые строки как обработанные. Я также не хочу блокировать эту таблицу и поддерживать поток, который делает вставки.

Является ли временная таблица лучшим решением?

Ответы [ 2 ]

1 голос
/ 19 ноября 2008

Временная таблица будет самым простым и, вероятно, лучшим способом решения этой проблемы.

1 голос
/ 18 ноября 2008

Если это в SQL Server, используйте вместо этого табличную переменную ...

Declare @MyFKs  Table 
   (FkId Integer Primary Key Not Null,
    isProcessed bit) 

Хотя они не так гибки (не могут добавить к ним несколько индексов), переменные таблицы не участвуют в ведении журнала транзакций, как временная таблица, поэтому для узких таблиц, где вы просто храните ключ и самое большее несколько столбцов данных, они могут быть лучше, чем временная таблица.

...