有没有办法限制受UPDATE语句影响的行数?

时间:2011-06-22 21:54:28

标签: sql pervasive

只是想知道我是否有办法限制行数 这将受到UPDATE语句的影响....我正在考虑使用像LIMIT语句这样的东西,但在PERVASIVE中没有这样的东西,任何提示?

谢谢

3 个答案:

答案 0 :(得分:1)

这似乎有用......

更新TableName     SET ColumnName = value WHERE ID IN(从TableName WHERE CONDITION中选择前100个ID)

无论你的“限制”是什么,都要获得TOP 100。然后,只需适当更新WHERE子句。

答案 1 :(得分:1)

TOP 100这个想法可行,但根据您的数据,它可能会扭曲测试正确性或性能。它也很难写。我认为添加基于RANDOM的条款可以更好一些。

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

如果你的数据库随机给出0到1之间的值,并且可以针对不同的随机函数和密度进行修改,则此方法有效。

答案 2 :(得分:0)

如果你只是小心,为什么不计算你要更新的行?

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

如果计数足够低,这实际上是切割的&amp;粘贴到更新:

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

根据需要加入脚本语言,pl / sql或存储过程。