关于sql中什么时候update,什么时候insert的问题

拉水电费 2015-08-06 02:57:23
问题描述:我在处理数据库的时候,当数据库中已经有这条记录了,我就直接update,如果没有这条记录我就insert,这种情况下,我每次都要先从db中查找有没有这条记录,在判断是update,还是insert,所以这样特别影响效率,有没有什么方法能提高效率?有想过用oracle中的存储过程,但是这个不熟悉。
...全文
463 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
缘中人 2015-08-12
  • 打赏
  • 举报
回复
先update吧
木大白易 2015-08-12
  • 打赏
  • 举报
回复
感觉是先查,如果有就update,没有就insert!
忧伤等待 2015-08-12
  • 打赏
  • 举报
回复
路过学习更好的方法~
Giberson1 2015-08-12
  • 打赏
  • 举报
回复
引用 9 楼 zyj_princess 的回复:
用hibernate中的saveOrUpdate方法
底层和楼主提出的问题是一样的。
引用 楼主 u011207831 的回复:
问题描述:我在处理数据库的时候,当数据库中已经有这条记录了,我就直接update,如果没有这条记录我就insert,这种情况下,我每次都要先从db中查找有没有这条记录,在判断是update,还是insert,所以这样特别影响效率,有没有什么方法能提高效率?有想过用oracle中的存储过程,但是这个不熟悉。
没有好的办法,不过一般修改肯定比新增多,所以你可以先修改,修改失败后再新增,这样总体上效率会高点。
HinanaiTenshi 2015-08-11
  • 打赏
  • 举报
回复
如果业务无法判断是不是update,先一次是效率最高的办法了。 有个优化办法是如果update的对象主键不为空,再先查一次,没有的话肯定是insert,不用查询了。
小的传说 2015-08-11
  • 打赏
  • 举报
回复
用这个语句啊 merge into demo t --要操作的表 using (select '2222' cc from dual )t1 --比较的数据 on (t.usersname=t1.cc) --相等的列 when matched then --如果数据存在 update set t.sex='2' ----进行修改 when not matched then --如果不存在 insert values('1','1','1')--插入操作
  • 打赏
  • 举报
回复
http://www.360doc.com/content/12/0816/22/10443322_230582399.shtml
快乐的小星星 2015-08-11
  • 打赏
  • 举报
回复
用hibernate中的saveOrUpdate方法
悲鸣秋 2015-08-07
  • 打赏
  • 举报
回复
一直都是 先查再。操作
ab637800 2015-08-07
  • 打赏
  • 举报
回复
用存储过程呗,或者你每次直接都删了在insert.
梦想修补师 2015-08-07
  • 打赏
  • 举报
回复
看有没有id呗
ArayChou 2015-08-07
  • 打赏
  • 举报
回复
我认为标准的做法应该是直接执行update,如果update返回值为0(一条都没有更新到,说明对应的数据不存在),再执行一次insert
sunshiwu1984 2015-08-07
  • 打赏
  • 举报
回复
merge into 可以用这个哦
树上的疯子^ 2015-08-07
  • 打赏
  • 举报
回复
INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b); ON DUPLICATE KEY UPDATE 在添加时操作,关注非主键列,注意与ignore的区别,有则更新指定列,无则添加。
scmod 2015-08-06
  • 打赏
  • 举报
回复
有when什么的类似语句的应该,其实也不是很耗时啊, 因为现在都是连接池不用重连不会耗多少时间感觉 数据库不熟...
浮云疮狗 2015-08-06
  • 打赏
  • 举报
回复
貌似Jdbc里面有updateorinsert这个方法 你查查看 hibernate里面是有的

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧