0

UPDATE ステートメントの影響を受ける行の量を制限する方法があるかどうか疑問に思っています.... LIMIT ステートメントのようなものを使用することを考えていましたが、PERVASIVE にはそのようなものはありません。何かヒントはありますか?

ありがとうございました

4

3 に答える 3

1

TOP 100アイデアは機能しますが、データによっては、正確性またはパフォーマンスのテストのいずれかを歪める可能性があります。また、書きにくい場合もあります。RANDOMベースの句を追加すると、少しうまくいくと思います。

UPDATE t SET c = blah 
  WHERE (/* whatever bunch of stuff */) 
  AND Random()<0.01 /* 1 percent */

これは、DB の乱数が 0 から 1 の間の値を与える場合に機能し、さまざまな乱数関数と密度に合わせて変更できます。

于 2011-06-22T22:18:02.880 に答える
1

これは効きそうです…

UPDATE TableName SET ColumnName = value WHERE ID IN (SELECT TOP 100 ID FROM TableName WHERE CONDITION)

あなたの「限界」が何であれ、TOP 100 を作ってください。次に、WHERE 句を適切に更新します。

于 2011-06-22T22:00:43.143 に答える
0

気をつけているだけなら、更新する行を数えてみませんか?

select count(*) from MYTABLE WHERE ...some condition...;

カウントが十分に低い場合、これは実質的にカット アンド ペーストで更新されます。

update MYTABLE set col1 = val1, ... WHERE ...some condition...;

必要に応じて、スクリプト言語、pl/sql、またはストアド プロシージャに挿入します。

于 2011-06-22T23:00:50.860 に答える