想要复制并插入数据库表的一条记录,唯一修改的部分就是主键值,其他部分不变,但是该数据库表的数据字段贼老多,想有没有简单的一条SQL语句能够实现上述要求的?
想过insert into tableSrc select * from tableSrc where key = 'keyValue'
可是这样要一一列举字段,insert into有没有单独指定主键值的写法??
又想能不能有什么SQL语句能够修改一条记录生成两条记录的?
或者还有别的什么高招能够实现这一简单要求呢?
高人请赐教??
想过insert into tableSrc select * from tableSrc where key = 'keyValue'
可是这样要一一列举字段,insert into有没有单独指定主键值的写法??
又想能不能有什么SQL语句能够修改一条记录生成两条记录的?
或者还有别的什么高招能够实现这一简单要求呢?
高人请赐教??
解决方案 »
- 怎么我安装的Oracle 11g 的 sqlplus 是win32的啊 应该怎么配置啊?
- 关于高级复制的紧急问题,请大家帮帮忙
- oracle如何将不同条件的查询结果并列
- 如何对某个重要表建立LOG(waiting online......)
- 这句话是什么意思?关于冷备份的。
- oracle备份恢复如何操作
- Oracle数据库计算的问题
- 为什么vb用ADO连Oracle时,总是rs.RecordCount = -1
- 谁有SQL Navigator的正式注册码?
- ====救命啊===,500分求此问题的解决,一次只能开100分 -- SOS
- 删除表中的重复记录
- 请教高手,一个使用java添加记录到oracle数据库中的问题
insert into tableSrc select * from tableSrc where key = 'keyValue'为什么是同一个表
终于明白你的意思了
可以插入 后 在UPDATE他的主键
可以用ROWID来区分 但是你最好说一下你执行这句是在什么地方用 是在程序中还是只是一个SQL语句罢了还是在存储过程等等其他的程序中调用呀 不同的地方就需要不同的方法了
(select * from tableSrc where key = 'keyValue'
union
select * from tableSrc )
不过也得写满字段名。
如下的样子:insert into tableSrc
(select 'keyValue2' as key,其它字段 from tableSrc where key = 'keyValue'
union
select * from tableSrc )
to licsth() :还是得写满字段阿?
to ghtghtmalone(malone) :具体点??
to xhwly(wly) :手动作的方法我知道,PLSQLDEVELOP里就可以这样拷贝复制,改主键
如果没有子表,可以考虑为这个表,做一个插入触发器(Before Insert),并定制一个Sequence,触发器中可以这样:
Select Sequence.NextVal Into :New.Key From Dual;你可以试一下。
declare t_key number;
begin
select sequence.nextval into t_key from dual;
:new.key:=t_key;
end;