[英]How to detect only the changes in the uploaded file?
如果我有一个xml
文件(已上传到服务器),并且对其进行了一些处理以从中获取数据,则将这些数据存储在数据库中。
如果用户进行了一些更改(插入,更新,删除),则将文件再次上传到我的服务器。 有什么方法可以检测到更改(插入,更新,删除)以根据我的数据库进行更新,而不仅仅是删除所有数据并再次插入它们。特别是,有些数据取决于现有数据(参照完整性),并且如果我删除所有数据,则将删除依赖项。(级联删除)!
正如Darin在他的评论中指出的那样,这在很大程度上取决于XML文件和数据库的结构和内容。
原则上,当前您删除具有一定数量表的一组行,然后再(重新)插入另一组行。
如果您只想更新数据库,则可以-对于每个表-首先确定当前要删除的所有行(即,执行SELECT ... WHERE
而不是DELETE ... WHERE
),准备一组行插入并比较这两个集合(将它们称为DELETE和INSERT ):
但是如前所述,执行这些操作的方式和顺序完全取决于您的特定数据结构。 例如,如果您在表之间具有依赖性(即,父子关系),则对父实体的删除操作还必须照顾孩子(可能在外键定义中使用ON DELETE CASCADE
子句)。 在这种情况下,您还应该在其子表之前处理父表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.