精华帖 (8) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (8)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-19
最后修改:2008-12-19
在表中创建一个timestamp列,使用key+timestamp,每次更新都更新timestamp,在更新前先来判断读时与更新时的timestamp是否一致。例子: Connection conn = null; try { PreparedStatement stmt; long ts; //timestamp conn = ds.getConnection( ); stmt = conn.prepareStatement("UPDATE Customer " + "SET firstName = ?, lastName = ?, phone = ?, " + "birthDay = ?, lastUpdateTS = ? " + "WHERE id = ? AND lastUpdateTS = ?");//注意条件 stmt.setString(1, firstName); stmt.setString(2, lastName); stmt.setString(3, phone); stmt.setDate(4, birthDate); stmt.setLong(5, ts = System.currentTimeMillis( )); stmt.setInt(6, id); stmt.setLong(7, lastUpdateTS); stmt.executeUpdate( ); lastUpdateTS = ts; } catch( SQLException e ) { e.printStackTrace( ); } finally { if( conn != null ) { try { conn.close( ); } catch( SQLException e ) { } } }
|
|
返回顶楼 | |
发表时间:2008-12-19
不知道 你数据的重复是否有关联的。就是说不一定主键一样才重复的,比如 只要A B两个字段都一样就是重复。 不同的情况会有不同的处理办法。
|
|
返回顶楼 | |
发表时间:2009-02-24
叫我一声大哥,我帮你
我现在的效率是插入一条记录平均耗时1毫秒,判断是否重复几乎不消耗时间 最垃圾的办法是先select,不论是不是通过临时表 相对来说异常处理要快很多,但也不是最快 |
|
返回顶楼 | |
发表时间:2009-02-24
mysql 的 on duplicate key update 1=1 ~
不知道合不合楼主的需求~ |
|
返回顶楼 | |