SQL-如何用替换记录ID插入选择



我想做一个插入选项以将数据从一个表复制到另一个表,但也会(除其他表旁边(记录ID。record_idsys_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)

存在的语句检查是否在新表中

最新更新