Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 有没有办法限制受UPDATE语句影响的行数?_Sql_Pervasive - Fatal编程技术网

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

Sql 有没有办法限制受UPDATE语句影响的行数?,sql,pervasive,Sql,Pervasive,我只是想知道是否有什么方法可以限制行数 这将受到更新语句的影响…我曾想过使用类似于限制语句的东西,但在普适中没有这样的东西,有什么提示吗 谢谢看来这会奏效 更新表名 设置ColumnName=value WHERE ID IN从TableName WHERE CONDITION中选择前100个ID 无论你的极限是多少,都要进入前100名。然后,只需适当地更新WHERE子句。前100个想法可以奏效,但根据您的数据,它可能会影响正确性或性能测试。它也可能很难写。我认为添加一个基于随机的子句会更好一些

我只是想知道是否有什么方法可以限制行数 这将受到更新语句的影响…我曾想过使用类似于限制语句的东西,但在普适中没有这样的东西,有什么提示吗


谢谢

看来这会奏效

更新表名 设置ColumnName=value WHERE ID IN从TableName WHERE CONDITION中选择前100个ID

无论你的极限是多少,都要进入前100名。然后,只需适当地更新WHERE子句。

前100个想法可以奏效,但根据您的数据,它可能会影响正确性或性能测试。它也可能很难写。我认为添加一个基于随机的子句会更好一些

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

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

如果您只是小心一点,为什么不只计算要更新的行数呢

select count(*) from MYTABLE WHERE ...some condition...;
如果计数足够低,这实际上是剪切并粘贴到更新:

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

根据需要将其放入脚本语言、pl/sql或存储过程中。

由于您无法控制更新中WHERE子句找到的匹配数据的顺序,因此这没有多大意义。你只是想避免对数百万行运行更新吗?@Mark Mann嗨Mark,这正是问题所在,我有一个update语句,我正在对一个相当大的表进行测试,只是想限制它所需的时间,这样我就可以先测试它了。。。