日期:2014-05-20  浏览次数:20784 次

求一个判断数据库数据重复的算法
我需要建立一个大型的数据中心,我对上传上来的数据需要做判断,数据库里是否已经有这条记录,数据库的字段有可能比较多,如果有就更新这条记录,如果没有就插入,大家有没有什么好的方法进行判断吗?

------解决方案--------------------
入库的时候有关键字,就是唯一标识符

查找关键字,然后 进行比对 或更新
------解决方案--------------------
写一个存储过程,直接调用存储过程,传入入参

在存储过程里面判断,
------解决方案--------------------
可以考虑触发器,不过性能可能会受到影响,而且有的数据库可能不支持

------解决方案--------------------
要不就这样,建立联合主键,联合主键由你根据需要来定, 然后统统进行插入操作,由数据库自己判断,
凡是插入失败的 进行修改操作,

------解决方案--------------------
不是有主键吗?至于大型数据库,可以建立索引来提高效率
------解决方案--------------------
大家怎么都只看算法 而不注意开发和调试的工具阿 ? 我觉得好的调试工具可以省去许多麻烦
------解决方案--------------------
楼主觉得困难的就是这些数据没有唯一标识,而是要通过全匹配才能判断是否重复,
至于使用存储过程应该不是解决问题的关键,存储过程主要是避免网络上的大量数据传输,
在这种情况下并没有什么效果
------解决方案--------------------
LZ想要做个谷歌吧!

"因为我的数据是从各个系统中获得的,所以不会有唯一标识", 这句话实说的不对了..
每一个应用都应该有针对性的.你的"从各个系统"不就是针对性"各个系统"吗. 好好地把它们的共性找出来.你的设计就可以实现了..
------解决方案--------------------
如果用取出数据在判断估计对数据库服务器压力比较大
是否可以分类取出,比如要插的数据为"我是中国人"
那么就取这个字段中开头为我的数据
------解决方案--------------------
可以使用存储过程