我想做一个插入选项以将数据从一个表复制到另一个表,但也会(除其他表旁边(记录ID。record_id
是sys_guid
,因此在每行不同 - 我如何替换它,而将一个表格复制到另一个表格?
我现在得到的是以下内容:
insert into TABLE_NEW (record_id, date_time, name, xml_record, meta_data)
select
record_id,
replace (date_time,'12.02.18','12.03.18'),
name,
replace (xml_record,'cats','dogs'),
replace (meta_data,'human','alien')
from
TABLE_FROM
WHERE ROWNUM <= 500;
执行此两次是无法使用的,因为record_id
具有唯一的约束(以及没有null,没有默认数据( - 如何克服此问题?
PS:如果这可能会有所帮助,这是一个Oracle数据库。
使用sys_guid()
?
insert into TABLE_NEW (record_id, date_time, name, xml_record, meta_data)
select sys_guid() as record_id,
replace(date_time, '12.02.18', '12.03.18'),
name,
replace xml_record,'cats','dogs'),
replace(meta_data,'human','alien')
from TABLE_FROM
where rownum <= 500;
用此
替换它Insert into TABLE_NEW (record_id, date_time, name, xml_record, meta_data)
select
record_id,
replace (date_time,'12.02.18','12.03.18'),
name,
replace (xml_record,'cats','dogs'),
replace (meta_data,'human','alien')
from
TABLE_FROM b
WHERE ROWNUM <= 500 and not exists (select a.record_id from table_new a where a.record_id=b.record_id)
存在的语句检查是否在新表中