`
yuyanshan
  • 浏览: 49114 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

oracle插入时,若表中不存在该信息则插入,否则更新主键外的其他信息

阅读更多
  
--测试数据
create table table1(id varchar2(100),name varchar2(1000),address varchar2(1000));
insert into table1(id,name,address)values('01001','影子','河北') ;
commit;

--插入
merge into table1 t1
using (select '01002' id,'影子' name,'河北' address from dual) t2
on (t1.id = t2.id)
when matched then
     update set t1.name = t2.name, t1.address = t2.address
when not matched then
     insert values (t2.id, t2.name,t2.address);
commit;

--查询结果
select * from table1
01001    影子    河北
01002    影子2    辽宁

--更新
merge into table1 t1
using (select '01001' id,'不是影子' name,'山西' address from dual) t2
on (t1.id = t2.id)
when matched then
     update set t1.name = t2.name, t1.address = t2.address
when not matched then
     insert values (t2.id, t2.name,t2.address);
commit;


--查询结果
select * from table1

01001    不是影子    山西
01002    影子2    辽宁

--删除测试数据
drop table table1;


安全一点的做法
begin
    insert into Table (ID,Value,..) values(1001,'222',...); 
    commit; 
  exception 
    when dup_val_on_idx then 
      update Table set value = '222' where id = 1001;
      commit;
    when others then
      Rollback;
  end;
分享到:
评论

相关推荐

    powerdesigner创建oracle_数据库表,设置表主键列为自动增长

    - `Max Value`: 根据实际需求设定,若不需要限制最大值,则选择`No Max Value`。 - `No Cache`: 勾选此选项可以避免缓存序列值。 - 点击“应用”,完成序列的创建。 2. **手动创建序列:** - 在PowerDesigner...

    创建oracle数据库中表的主键和自增

    ### 创建Oracle数据库中表的主键和自增 在Oracle数据库中实现自增主键是一项常见但非常重要的功能。这不仅有助于确保数据的唯一性,还能简化开发过程中的某些环节,尤其是在需要自动增长的主键时。下面将详细介绍...

    oracle向数据库里插入图片

    在Oracle数据库中插入图片涉及到BLOB(Binary Large Object)数据类型,这是Oracle用来存储大量二进制数据,如图片、音频或视频文件等的一种方式。本文将详细介绍如何在Oracle数据库中插入、查询和管理图片。 首先...

    oracle表主键和外键的区别

    2. 防止错误:通过外键约束,可以避免在关联表中插入不存在于参照表的值,防止数据的不一致。 3. 数据依赖:外键使得一个表的数据依赖于另一个表的数据,形成数据库中的关系。 例如,如果有一个成绩表,其中也有...

    Oracle数据库创建表tuser设置主键自动增长

    ### Oracle数据库创建表tuser设置主键自动增长 在Oracle数据库中,创建一张包含自动增长主键的表是一项常见的需求。本文将详细介绍如何在Oracle环境中创建一个名为`tuser`的表,并实现其主键自动增长的功能。此外,...

    oracle ODP.NET 批量插入或更新

    ### Oracle ODP.NET 批量插入或更新技术详解 #### 一、背景介绍 在数据库操作中,批量处理数据是一项非常重要的技术。特别是在处理大量数据时,如何高效地执行批量插入或更新操作对于提高应用程序性能至关重要。...

    oracle创建表空间、表、主键、外键、序列

    在Oracle数据库管理系统中,表空间(Tablespace)是存储数据对象(如表、索引、视图等)的逻辑单位。创建表空间是数据库管理的基础,因为它为数据提供了存储空间。下面将详细介绍如何创建表空间以及如何在Oracle中...

    oracle数据库主键自动生成

    在 Oracle 数据库中,主键自动生成是指在插入数据时自动生成唯一的主键值,从而简化数据录入和维护工作。下面将详细介绍 Oracle 数据库主键自动生成的实现方法和相关知识点。 序列(Sequence) 序列是一种数据库...

    oracle建表练习(主键外键)

    一个表中只能有一个主键,并且主键列中的数据不能重复且不能为null。在本次练习中,我们创建了四个表:student(学生表)、course(课程表)、score(成绩表)和teacher(教师表)。每个表中都定义了一个主键,并...

    oracle主键自动增长

    ### Oracle主键自动增长知识点详解 #### 一、Oracle序列(Sequence)的使用方法 在Oracle数据库中,并没有像MySQL那样的自动增长字段特性,因此在实际应用中,我们常常需要手动实现这一功能。序列(Sequence)是...

    oracle 主键自增 sequence

    - **CACHE**:如果指定了 `CACHE` 关键字并设置了缓存大小(例如 `CACHE 10`),则 Oracle 会预先分配一组序列值,并将它们存储在内存中。这样做可以提高性能,但若发生意外,可能会导致序列值不连续。 - **CYCLE**...

    Oracle中主键自增实例

    在Oracle数据库系统中,主键(Primary Key)是表中的一个或一组字段,它们的值在整张表中是唯一的,用于唯一标识每一条记录。然而,与MySQL等其他数据库不同,Oracle并没有内置的自动递增(auto-increment)功能来...

    oracle序列主键自增长

    在Oracle数据库系统中,主键是表中的一个或多个字段,用于唯一标识每条记录,确保数据的完整性和一致性。为了实现主键自动增长,Oracle提供了序列(Sequences)这一特性,它能按照预设的规则(通常是递增)生成唯一...

    ORACLE自增主键设置方法

    在Oracle数据库中,自增主键是一种常见的主键设计方式,它能够确保每条记录的唯一性,并且在插入新记录时自动递增,简化了数据管理流程。本文将详细介绍如何在Oracle中设置自增主键。 #### 一、创建序列(Sequence...

    oracle_创建表空间、表、主键、外键、序列.docx

    在Oracle数据库管理系统中,创建表空间、表、主键、外键和序列是数据库设计的基础操作。以下是对这些概念的详细解释以及如何在Oracle中执行这些操作。 **创建表空间** 表空间是Oracle数据库中存储数据文件的地方。...

    Excel表的Oracle数据库插入工具

    Excel作为一种便捷的电子表格工具,广泛用于数据整理和分析,而Oracle数据库则以其强大的性能和安全性在企业级应用中占据重要地位。本文将详细探讨如何通过源代码实现Excel表数据到Oracle数据库的插入,并介绍相关...

    oracle 创建id主键序列 脚本

    在Oracle数据库中,主键是表的一个重要组成部分,它用于唯一标识表中的每一行记录。在许多业务场景中,我们通常需要一个自增的序列来作为主键,以确保数据的唯一性和顺序性。Oracle数据库提供了序列(Sequences)...

    oracle中设置自增主键参考

    在创建表时,我们首先需要定义一个数字类型的字段作为主键,并设置为`NOT NULL`以确保该字段不能为空。然后,通过创建一个自增序列来实现自增功能。例如: ```sql CREATE TABLE example ( ID NUMBER(4) NOT NULL ...

    oracle中的sequence实现主键增长

    Oracle中的Sequence是数据库管理系统提供的一种机制,用于生成序列化的整数,通常用于主键或唯一标识符,确保数据的唯一性和有序性。在Oracle中,Sequence不同于其他数据库系统的自增字段,例如SQL Server中的`...

Global site tag (gtag.js) - Google Analytics