MySQL:在表更新期间删除“孤立”行?

时间:2013-11-06 13:07:39

标签: php mysql sql

好的......这是我的问题......我正在从云REST查询中提取几千条记录,并在CRON期间更新本地表,并使用提取的数据插入和更新现有记录。即

INSERT INTO `property` ($columns_string) 
VALUES ($values_string) ON DUPLICATE KEY UPDATE $update_string

非常标准的东西......但是我有一个问题,即如果记录被“孤立”,如果它们在拉出的数据中不再存在,即我需要删除新的不再存在的现有记录数据或更新标志或其他东西,告诉我的系统不再以相同的方式处理它们。

我希望我很清楚...

编辑:我应该补充一点,REST拉实际上是通过几种不同的“类型”数据循环,而INSERT将它们全部填充到一个主表中,所以一个简单的“删除,如果不存在......”将不会真的工作..

advTHANKSance, - 标记

1 个答案:

答案 0 :(得分:1)

在表“property”中添加一列“flag tinyint(1)”。在将更新列值上传到0之前

update `property`
set flag = 0

在“insert into”子句中更新此新列

INSERT INTO `property` ($columns_string, flag) 
VALUES ($values_string, 1) ON DUPLICATE KEY UPDATE $update_string, flag=1

上传后删除/更新未使用的字段

update `property`
set active=0
where flag=0

如果字段“active”表示1 - 表示活动,0表示非活动