日期:2014-05-18  浏览次数:20661 次

jdbc 插入数据时的重复性验证操作
jdbc在插入数据前我想验证要插入的数据是否已经存在,存在的话就更新,不存在就插入,应该怎样处理啊?
请用sql例句来说明,谢谢了!

------解决方案--------------------

办法1:
先 insert 存在记录必然主键冲突,检查 SQL exception code 如果是主键冲突则再update.


办法2:
使用相应的 SQL.
这样SQL可能每个数据都不相同.
举例 oracle 是 merge 命令,具体使用方法有点复杂你再查一下吧.
mysql 是 replace 
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,...)]
VALUES (expression,...)

REPLACE功能与INSERT完全一样,除了如果在表中的一个老记录具有在一个唯一索引上的新记录有相同的值,在新记录被插入之前,老记录被删除。

------解决方案--------------------
建立主键
------解决方案--------------------
UP
------解决方案--------------------
先Update, 返回操作成功的记录条数;
如果记录条数=0,则insert