繁体   English   中英

如何仅检测上载文件中的更改?

[英]How to detect only the changes in the uploaded file?

如果我有一个xml文件(已上传到服务器),并且对其进行了一些处理以从中获取数据,则将这些数据存储在数据库中。

如果用户进行了一些更改(插入,更新,删除),则将文件再次上传到我的服务器。 有什么方法可以检测到更改(插入,更新,删除)以根据我的数据库进行更新,而不仅仅是删除所有数据并再次插入它们。特别是,有些数据取决于现有数据(参照完整性),并且如果我删除所有数据,则将删除依赖项。(级联删除)!

注意:

  • 我存储文件哈希,所以我知道自从上次上传以来是否发生了某些变化。

正如Darin在他的评论中指出的那样,这在很大程度上取决于XML文件和数据库的结构和内容。

原则上,当前您删除具有一定数量表的一组行,然后再(重新)插入另一组行。

如果您只想更新数据库,则可以-对于每个表-首先确定当前要删除的所有行(即,执行SELECT ... WHERE而不是DELETE ... WHERE ),准备一组行插入并比较这两个集合(将它们称为DELETEINSERT ):

  • 必须从数据库中删除DELETE集中的行
  • 插入INSERT集中的行
  • 行,也同时插入删除组必须进行更新。

但是如前所述,执行这些操作的方式和顺序完全取决于您的特定数据结构。 例如,如果您在表之间具有依赖性(即,父子关系),则对父实体的删除操作还必须照顾孩子(可能在外键定义中使用ON DELETE CASCADE子句)。 在这种情况下,您还应该在其子表之前处理父表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM