打印

[数据库] 二次导数据的时候如何判断数据值重覆

二次导数据的时候如何判断数据值重覆

我有一张表:
ID File Folder CreateTime Update
几个字段

然后另外有个C#写的工具,是用来将本地的文件及文件夹导入进表,不导内容,只记录文件名和所在路径名以及他的创建时间和修改更新时间(注:文件的修改以及创建都是自己手动在本地操作,比如:d:\test.txt,我就手动在d:\下创建或者修改)

问题就在:
1:当我第一次导进数据库的时候没有问题,但是第二次导的时候所有数据会重覆导一下,就比如我第一次共导进5000个文件,然后在本地又添加了个文件,那么第二次导的话应该就是5001个文件,把新增文件导进去。但是事实第2次导的时候是10002个文件,等于就是数据重覆又导了遍。

哪位高手能解决下,我现在的思路是按CreateTime和Update来判断,当第2次,3次,4次.....导的时候只导进createtime中新增加的文件,已有的不进行导入。在线等,谢谢
求助阿,没人指点么
先在表中查找是否存在该文件
1、如果不存在,则添加
2、如果存在,则比较创建时间和修改时间
      如果不同,则修改
      否则,……
只要有我的,就一定会有你的
~!·#¥%……
导的时候判断是否重复效率太低,应该在每次导入表以后来删除重复.这样做法效率高,不容易出错

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
有方法举例么?

TOP

表里面已经存在记录,以后再导入时文件名是相同的,找出最新的不重复的记录,删除除此以外的记录就行了
复制内容到剪贴板
代码:
delete from 数据表 a
where id not in
(
select id from 数据表 b
where id>=
  (select max(id) from 数据表 c where c.File=b.File and c.Folder =b.Folder)
)
评词党,欢迎加入友链接 http://www.pingcd.com/

TOP

楼上的意思是需要三张表然后做比较么?

TOP

引用:
原帖由 Keisar 于 2008-7-11 13:40 发表
楼上的意思是需要三张表然后做比较么?
数据表 a
数据表 b
数据表 c

就是一张表,a,b,c是他们的别名.没有别名无法区分.这是内查询,或者叫嵌套查询!
评词党,欢迎加入友链接 http://www.pingcd.com/

TOP