--测试数据
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;
分享到:
相关推荐
oracle创建表时主键自动增长方法 5 测试反复执行如下语句:insert into Test_Increase(Username) values('test')6 查看插入结果:userid username1 test2 test3 test4 test5 test6 test7 test8 test9 test
接触编程以来,在数据存储方面一直用的MS SQL。Oracle这名字对我来说是如此的熟悉,但是... 我们先来说个很常见的开发案例,有一张Account表,有两个字段分别为AccountID, AccountName,其中AccountID为主键,往这个
Java实现使用Mybatis将数据批量插入到Oracle数据库,并且可以使用Oracle序列来生成主键
1.1、直接在PLSQL中设置 1.2、命令创建 create sequence seq_users ##创建序列seq_users increment by 1 ## 步长,每次加1 start with 1 ##从1开始 minvalue 1 ##最小值 maxvalue 9999999 ##最大值 order ##确保...
ysql等其他数据库中有随着记录的插入而表ID自动增长的功能,而oracle却没有这样的功能,但我们可以用序列和触发器来实现这样的功能.
主键自增在插入数据的时候是很实用的,可以获取并操作返回的插入记录的ID,接下来介绍Oracle如何创建主键自增表,感兴趣的你可以了解下,就当是巩固知识,希望此文对你有所帮助
对于查询肯定是可以多表关联的,其实对于除了查询之外也是可以进行多表关联过滤数据的,从而达到在Oracle中查到目标数据即可更新,从而规避规避以往需要单独查一次数据然后在按照100-300的批次做插入,更新,删除的...
触发器名称,混合不选,每行,触发前,插入时,启用 2.下面展示触发器代码。 // An highlighted block BEGIN SELECT SEQ_EXAM_KNOWLEDGE_BASE.nextval INTO :NEW.ID FROM DUAL; END; 3.两个引用写一下 到此这...
oracle中解决自动插入主键时,自动编码!
在excel内编辑好表结构(包括字段名、类型、长度、主键、是否允许为空、默认值、联合主键)。该 程序根据excel自动生成建表语句(创建表、主键)还...内容,如果向此表插入的主键不为空,以此不空主键内容插入表中。
当向表中插入数据时,主键值自动加一. 实现方法1: 建立一个最小为1,最大为nomaxvalue的一个序列号会自动循环的序列 create sequence 序列名 increment by 1 start with 1 nomaxvalue nocycle; .......
在创建表时,经常会创建该表的主键、外键、唯一约束、Check约束等 语法结构 create table 表名( [字段名] [类型] [约束] ……….. CONSTRAINT fk_column FOREIGN KEY(column1,column2,…..column_n) ...
Mybatis插入数据以后只会返回影响的数据库行数,如果是插入一条数据成功则返回1,失败返回零,插入多条返回插入成功的数量。 通过注解或者xml配置无法直接返回自增的主键。Mybatis插入数据返回的自增主键会自动设置...
索引组织表(IOT)不仅可以存储数据,还可以存储为表建立的索引。索引组 织表的数据是根据主键排序后的顺序进行排列的,这样就提高了...但是这是由牺牲插入和更新性能为代价的(每次写入和更新后都要重新进行重 新排序)
mybatis进行插入操作时,如果表的主键是自增的,...基本上经常会遇到的就是 Oracle Sequece 和 Mysql 自增主键,至于其他的手动生成唯一主键的问题在这里就不讨论了,这里主要说明下在mybatis中对于自增主键的配置。
主要介绍了Mybatis批量插入数据返回主键的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
§10.1.6 在查询中不让记录被更新 217 §10.1.7 EXCEPTIONS(违反完整性)问题 217 §10.1.8 Not in和Not Exists 218 §10.1.9 关于 COPY命令 218 §10.1.10 列值为NULL情形的处理 219 §10.1.11 使用 product_user_...
7.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用Select语句。 8.使用Describe命令可以显示表的结构信息。 9.使用SQL*Plus的Get命令可以将文件检索到缓冲区,并且不执行。 10.使用Save命令可以将...