日期:2014-05-17  浏览次数:20783 次

select 和 update
最近在程序开发中遇到了操作数据库的部分,一般的惯性思维就是,先查表select,如果木有就insert,如果有的话就update,而我的一个同事给出了另一种做法,就是直接上来就update,不管存在与否,如果不存在的话,update应该会插入一条。他的解释是这样的话,效率比较高,想问问各位大牛们,哪种方法综合考虑比较合适呢?

------解决方案--------------------
引用:
最近在程序开发中遇到了操作数据库的部分,一般的惯性思维就是,先查表select,如果木有就insert,如果有的话就update,而我的一个同事给出了另一种做法,就是直接上来就update,不管存在与否,如果不存在的话,update应该会插入一条。他的解释是这样的话,效率比较高,想问问各位大牛们,哪种方法综合考虑比较合适呢?


用Merge into   oralce 直接能用!
http://blog.csdn.net/yole_grise/article/details/15337973
------解决方案--------------------
update不会插入新数据。
2楼的方法可以用
------解决方案--------------------
引用:
最近在程序开发中遇到了操作数据库的部分,一般的惯性思维就是,先查表select,如果木有就insert,如果有的话就update,而我的一个同事给出了另一种做法,就是直接上来就update,不管存在与否,如果不存在的话,update应该会插入一条。他的解释是这样的话,效率比较高,想问问各位大牛们,哪种方法综合考虑比较合适呢?

"如果不存在的话,update应该会插入一条"oracle没有这样规定阿。建议如楼所说用MERGE INTO,经典的update 和 insert
------解决方案--------------------
MERGE INTO+1
------解决方案--------------------
还是第一次听说update条件不存在的时候会插入一条新数据。
------解决方案--------------------
引用:
还是第一次听说update条件不存在的时候会插入一条新数据。

这个经常有啊
------解决方案--------------------
Oracle只有merge into才支持这种语义.
等待Oracle下一个版本吧.
可能会有这样的语法:
insert into on existing update .....