phalcon:有一个表,按日期查找半年以为的数据,由于数据量特别大,不能一次:delete删除数据,否则会造成数据表卡顿,数据库锁死。

那么只能循环的删除数据,每次删除100条左右,知道删除为止。,此时需要判断,但删除到没有符合条件的数据,要判断到是否有没有影响到行数。需要$this->db->affectedRows()来判断,删除的sql是否影响到行。

同时我们也不可能:先查找满足条件的数据,然后在删除,虽然能解决,但是此时多了一步查询,然后在foreach删除数据,得不偿失。

在调用:

for($i = 0; $i <10; $i++)
{ $this->modelsManager->executeQuery("delete FROM Demo");
var_dump($this->db->affectedRows()); } 当执行到i=0时,数据已经完全删除了,以后的1-10部,其实都没有数据,但因为调用的是$this->modelsManager->executeQuery,所以,$this->db->affectedRows() 得值会一直是大于0的状态。 或者当i=0时,删除的数据是null时,以后i=1-10后所有步骤,都会为空。 所以此删除方便不可靠。

  

经过查阅后发现,有一种方法可以避免此错误:

for($i = 0; $i < 10; $i++)
{ $this->db->delete("Demo");
或者:
$this->db->delete(
"Demo",
"条件"
); var_dump($this->db->affectedRows());
}

  

或者带limit:

for($i = 0; $i < 10; $i++)
{ $this->db->delete("Demo");
或者:
$this->db->delete(
"Demo",
"条件 limit 10"
); var_dump($this->db->affectedRows());
}

  

phalcon: 当删除循环删除一组数据,需要判断影响的行affectedRows的更多相关文章

  1. Python--增量循环删除MySQL表数据

    需求场景: 有一业务数据库,使用MySQL 5.5版本,每天会写入大量数据,需要不定期将多表中“指定时期前“的数据进行删除,在SQL SERVER中很容易实现,写几个WHILE循环就搞定,虽然MySQ ...

  2. js 给json添加新的字段,或者添加一组数据,在JS数组指定位置删除、插入、替换元素

    JS定义了一个json数据var test={name:"name",age:"12"};需要给test再添加一个字段,需要什么办法,可以让test的值为{na ...

  3. Kettle循环删除数据

    1.问题描述: 某个系统原库的数据同步到备份库.但是由于原库的的数据会物理删除,此时需要删除备份库的数据. 2.不理想的解决1: 1)首先从备份库获取该表的所有ID: 2)循环备份库的ID,去原库检测 ...

  4. 使用pymysql循环删除重复数据,并修改自增字段偏移值

    创建表: CREATE TABLE `info` ( `id` tinyint NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, PRIMAR ...

  5. Javascript循环删除数组中元素的几种方法示例

    发现问题 大家在码代码的过程中,经常会遇到在循环中移除指定元素的需求.按照常规的思路,直接一个for循环,然后在循环里面来个if判断,在判断中删除掉指定元素即可.但是实际情况往往不会像预想的那样顺利运 ...

  6. 大量删除MySQL中的数据

    出现的背景: 公司做了一个redis相关的项目,其中mysql存储了很多统计数据.比如客户端上报的数据,redis实例的数据,应用的数据,机器的数据等.每天都在上报,采集,由于没有定期删除,数据大量累 ...

  7. Python笔记:用for循环删除列表中的元素

    for运行过程中会有一个指针来记录当前循环的元素是哪一个,一开始这个指针指向第0个元素,然后获取它,接着删除第0个元素,这时候,原来是第1个的元素会变成第0个,当指针向后移动一次,指向了现在第1个元素 ...

  8. 【学习笔记】--- 老男孩学Python,day8 知识点补充 join,列表不能循环删除,深浅copy

    1. 补充基础数据类型的相关知识点 1. str. join() 把列表变成字符串 2. 列表不能再循环的时候删除. 因为索引会跟着改变 3. 字典也不能直接循环删除. 把要删除的内容记录在列表中. ...

  9. 有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。

    // ConsoleApplication12.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" // ConsoleApplication1 ...

随机推荐

  1. paper 123: SVM如何避免过拟合

    过拟合(Overfitting)表现为在训练数据上模型的预测很准,在未知数据上预测很差.过拟合主要是因为训练数据中的异常点,这些点严重偏离正常位置.我们知道,决定SVM最优分类超平面的恰恰是那些占少数 ...

  2. mysql 查询行号

    SELECT @rowno:=@rowno+1 as rowno,r.* from t_zg_loanee_apply r,(select @rowno:=0) t;

  3. 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册

    <zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...

  4. 【转】PowerShell入门(十一):编写脚本模块

    转至:http://www.cnblogs.com/ceachy/archive/2013/03/08/PowerShell_Script_Module.html 现在通过编写模块就可以在PowerS ...

  5. Spring学习笔记之三----基于Annotation的Spring IOC配置

    使用Annotation 来创建Bean有两种方式 在配置类中创建bean(配置类是指标注为@Configuration的类),在配置类中每一个创建bean的方法都应该标注为@Bean,可以在@Bea ...

  6. OC-01 编译链接的作用

    编译:检测代码的语法合法性,随后生成.o文件. 链接:把项目中所有的.out合并,生成一个可执行文件. OC编译连接过程 .m---->.o---->.out  . 检测源文件的语法合法性 ...

  7. Rational Rose

    Rational Rose简明实用教程 http://furzoom.com/rational-rose-course/ Unidirectional Association 单向关联 general ...

  8. jsp九大内置对象、四种作用域、跳转方式

    jsp有四种属性范围: page -> 页面级别,显然只有在一个页面内可用. request -> 请求级别 服务器跳转,一次请求之后消失. session -> 会话级别 客户端跳 ...

  9. int型、long型和long long型

    long long本质上还是整型,只不过是一种超长的整型.int型:32位整型,取值范围为-2^31 ~ (2^31 - 1) . long:在32位系统是32位整型,取值范围为-2^31 ~ (2^ ...

  10. echarts在IE8下遮挡其他组件的问题

    echarts的图在IE8下会浮在上层遮挡住其他组件,解决方式是页面中引入 <meta http-equiv="X-UA-Compatible" content=" ...