MERGE INTO的主键生成问题 要把一个表的数据覆盖要另外一个表,将被覆盖表中有的数据UPDATE,没有的数据执行INSERT,用的是merge into,但是insert操作的主键如何生成?用 max(rownum)+1会报违反唯一约束,好像insert操作不是一个一个执行而是所有insert操作一起执行的?不知道如何解决。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 --create sequencecreate sequence seq_t;--testselect seq_t.nextval from dual; 参考下昨天的帖子http://topic.csdn.net/u/20081224/10/60e00690-252f-421c-b3d7-7e99641b4bbf.html我再5楼的例子 ID一般是通过触发器和SEQUENCE来解决的.报违反唯一约束是应为你的主键有重复。把这个max(rownum)+1换成MAX(ID)+ROWNUM试试 提两种解决方案:1,先去除主键,数据插入后再加上,去除sql语句:ALTER TABLE table_name drop CONSTRAINT CONS_NAME;2,将重复数据过滤,做成一个视图,然后在插入表中insert into select * from v_view 数据库中已经有数据,没有用序列生成主键,生成方式是MAX(ID)+1 exp oracle 9.2->imp oracle 10.2没反应 请问哪位朋友能提供一些数据库面试题大全之类的,谢谢了! SQL查询--查找表中第5--10行记录 同义词无法删除 oracle 问题:the account is locked 求个sql语句! 请教从SQL Server 到ORACLE转换时UPDATE语句怎么写?多谢 sqlload的问题,帮帮我 一个很初级的问题,我用sqlserver导入oracle的表为什么在sqlplus中查不到? ORACLE学习 怎样确认数据库是否建了全文索引,如果没建9I的DB要怎么建? sql 语句
--create sequence
create sequence seq_t;
--test
select seq_t.nextval from dual;
我再5楼的例子
报违反唯一约束是应为你的主键有重复。
把这个max(rownum)+1换成MAX(ID)+ROWNUM试试
1,先去除主键,数据插入后再加上,去除sql语句:
ALTER TABLE table_name drop CONSTRAINT CONS_NAME;
2,将重复数据过滤,做成一个视图,然后在插入表中
insert into
select * from v_view