0

本質的に、MySQL のプロシージャの存続期間中、いくつかの行を一時変数に格納したいと考えています。

私の手順では、手順の開始時に外部キーの列を取得します。それらの作業が完了したら、テーブルを更新して、それらが処理されたことを示したいと思います。プロシージャが一連のデータを処理している間に、このテーブルに挿入が行われる可能性があるため、これらの新しい行を誤って処理済みとしてマークしたくありません。また、このテーブルをロックして、挿入を行っているスレッドを保持したくありません。

一時テーブルは最善の解決策ですか?

4

2 に答える 2

1

一時テーブルは、この問題を解決する最も簡単でおそらく最良の方法です。

于 2008-11-19T11:06:57.150 に答える
1

SQL Serverにある場合は、代わりにテーブル変数を使用して調査してください...

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

それらは柔軟ではありませんが (それらに複数のインデックスを追加することはできません)、テーブル変数は一時テーブルのようにトランザクション ログに参加しません。列を使用すると、一時テーブルよりもパフォーマンスが向上する可能性があります。

于 2008-11-18T16:42:14.823 に答える