oracle防止重复插入数据
来源:互联网 发布:mac如何添加个人收藏 编辑:程序博客网 时间:2024/05/17 09:07
这个问题整整纠结我一个上午,关键问题不是没有方法而是方法不对!
我最初是按照这个方法:
http://www.cnblogs.com/sunzhenxing19860608/archive/2010/10/19/1855823.html
怎么试都没有办法插入数据,只能更新成功!请教了别人之后才发现这个方法是不对的!
借鉴上面的例子:
数据库表:TEST
CREATE TABLE TEST( ID NUMBER NOT NULL, NAME VARCHAR2(30) NOT NULL, SEX VARCHAR2(2) DEFAULT '男')
插入两条数据:
INSERT INTO TEST VALUES(1,'SUNZHENXING','男')INSERT INTO TEST VALUES(2,'SUNHAILONG','女')
MERGE语句:
例子中的为:
MERGE INTO TEST A USING TEST B ON (A.NAME=B.NAME)WHEN MATCHED THENUPDATE SET A.SEX='女'WHERE A.NAME='SUNZHENXING'WHEN NOT MATCHED THENINSERT VALUES (3,'SUNZHENXING','女')
更改后的为:
MERGE INTO TEST A USING (select '3' as ID,'SUNZHENXING' as NAME,'女' as SEX from Test )B ON (A.NAME=B.NAME)WHEN MATCHED THENUPDATE SET A.SEX=B.SEX WHERE A.NAME=B.NAMEWHEN NOT MATCHED THENINSERT VALUES (B.ID,B.NAME,B.SEX)
这里的表B是个虚表,不能直接用A表来代替,只有通过查询得到是否存在这条数据之后才可以进行判断这条数据是否存在!
个人测试是正确的,如果哪位网友发现了错误,请通知本人,本人好进行更正,以防让更多的人看到错误的方法!
谢谢!
0 0
- oracle防止重复插入数据
- oracle 防止插入重复数据
- mysql 防止重复插入数据
- MYSQL 插入数据防止重复
- Sqlite 防止插入重复数据
- mysql 防止插入重复数据
- 防止页面刷新后插入重复数据
- MySQL 防止插入重复数据---replace into
- mysql防止数据重复插入方法分析
- mysql如何防止插入重复数据?
- replace防止数据表中重复数据插入
- oracle 避免重复插入数据
- oracle处理重复插入数据
- COMBOX下拉菜单 防止插入数据的重复
- mysql 防止插入重复数据sql和触发器
- oracle循环重复插入表数据
- SQL Server防止重复插入
- 防止重复提交数据
- 设计模式初探-策略模式(STRATEGY),别名政策(Policy)
- Mail 配置
- cocos2d-x 的编译helloword
- Web开发者不容错过的20段CSS代码
- 命名空间(namespace)
- oracle防止重复插入数据
- iOS 获取self类型
- linux 基本问题
- 修改bootstrap中幻灯片carousel的轮播时间
- State模式
- Android不显示SDK图标的解决
- 百度地图集成问题Undefined symbols for architecture。。。解决方案
- 互联网思维下的传统企业转型思考
- Boost库中对this指针的包装