在单个查询中将多个行从一个表插入到Oracle中的另一个表

code_Finder

我有两个表,dcr_details_new和dcr_details_old,其中主键是DCRDID。

在此处输入图片说明

dcr_details_new表和dcr_details_old表共享相同的结构。主键是DCRDID,在每个插入中我将其递增1。

我需要将所有行从dcr_details_old提取到dcr_details_new中,在这里我必须按DOCREGNO和DCR_No过滤记录

因此,正常的单行导入/插入操作如下。

INSERT INTO dcr_details_new 
SELECT (select Max(DCRDID) + 1 from dcr_details_new),
       TWNCODE,
       '100008',
       DOCCATOGARY,
       DCR_NO,
       VISIT_NO,
       GIVEAWAY,
       COMPETITORBRN,
       REMARK,
       DCRDRDATE,
       COM_ACTI
 FROM dcr_details_old  
WHERE DOCREGNO= 'T10037'
  and DCR_NO = 28766;

1 rows created.

现在,我想跳过筛选dcr_no并插入记录,因为它包含太多带有不同dcr_no记录在这里,当我仅使用DOCREGNOselect语句进行过滤时,会返回许多记录,并且当我尝试循环执行和插入操作时,我总是会弄乱主键,因为它没有按我的意愿递增。

这是我尝试过的循环以及出现的错误。

declare
  i integer := 1;
BEGIN 
  FOR x IN (select * from dcr_details_old  WHERE DOCREGNO= 'T10037')
  LOOP
    INSERT INTO dcr_details_new (DCRDID, TWNCODE, DOCREGNO, DOCCATOGARY,
                                 DCR_NO, VISIT_NO, GIVEAWAY, COMPETITORBRN,
                                 REMARK, DCRDRDATE, COM_ACTI)
    SELECT (select Max(DCRDID) + 1 from dcr_details_new),
           TWNCODE,
           '100008',
           DOCCATOGARY,
           DCR_NO, VISIT_NO, GIVEAWAY, COMPETITORBRN,
           REMARK, DCRDRDATE, COM_ACTI
      FROM dcr_details_old;

     i := i + 1;
  END LOOP;
END;

错误:

**ERROR at line 1:
ORA-00001: unique constraint (SYS_C0061873) violated
ORA-06512: at line 5**

此错误SYS_C0061873是主键DCRDID在插入值中,这'100008'docregno我必须手动输入的新

有任何简单的方法可以继续吗?请寻求您的协助。

Marmite轰炸机

要将具有新主键的所有记录从OLD插入表,请使用以下语句。

注意,关键部分是获取最大的现有密钥并使用ROWNUM创建对于信号迁移步骤(即,不进行并行迁移且应用程序已关闭),这是一种安全的方法。

 INSERT INTO dcr_details_new
 (DCRDID,TWNCODE,DOCREGNO,DOCCATOGARY,DCR_NO,VISIT_NO,GIVEAWAY,
 COMPETITORBRN,REMARK,DCRDRDATE,COM_ACTI)
 select 
  (select max(DCRDID) from dcr_details_new) + rownum as DCRDID,
  TWNCODE,DOCREGNO,DOCCATOGARY,DCR_NO,VISIT_NO,GIVEAWAY,
  COMPETITORBRN,REMARK,DCRDRDATE,COM_ACTI
 from dcr_details_old where DOCREGNO = 'T10037'
 ;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从一个数据库表插入到另一个

来自分类Dev

从一个表中选择多个列,并作为行插入到另一个表中

来自分类Dev

Mysql查询在多个条件和列上从一个表插入到另一个表

来自分类Dev

从一个表插入行到另一个jQuery

来自分类Dev

将表值从一个表插入到另一个表

来自分类Dev

在MySQL php中将ID从一个表插入到另一个表

来自分类Dev

在MySQL中验证从一个表到另一个表的字段

来自分类Dev

在VBA中将动态行从一个工作表复制到另一个工作表

来自分类Dev

Laravel中从一个表到另一个表中相同字段的多个外键

来自分类Dev

如何在MySQL中将一个表中的行插入到另一个表中

来自分类Dev

KDB:如何将行从一个表插入/插入到另一个表

来自分类Dev

在oracle中查询以从一个表中获取多个记录并输入另一个表

来自分类Dev

如何从一个表中选择许多行并插入到另一个表中特定行的特定JSONB字段中?但是在单个原始SQL查询中

来自分类Dev

T-SQL仅使用变量中的值而不是一列将行的副本从一个表插入到另一个表

来自分类Dev

PSQL查询根据条件将记录从一个表插入到另一个表

来自分类Dev

MySQL基于选择从一个表插入到另一个表

来自分类Dev

从一个数据库表插入到另一个

来自分类Dev

使用子查询从另一个表向一个表中插入(多个)新行?

来自分类Dev

想要从一个表中的数据插入到PHP中的另一个表?

来自分类Dev

Mysql查询在多个条件和列上从一个表插入到另一个表

来自分类Dev

从一个表插入行到另一个jQuery

来自分类Dev

使用雄辩的/查询生成器将多个值从一个表插入到另一个表

来自分类Dev

将记录从一个表中的特定列插入到另一个表中,具体取决于多个条件

来自分类Dev

如果MySQL中尚不存在将行从一个表插入到另一个表中

来自分类Dev

从一个表到另一个表的 Oracle 事务更新量

来自分类Dev

Sql从一个表插入id到另一个表中的条目

来自分类Dev

从多个表中选择,插入另一个表 Oracle SQL 查询

来自分类Dev

将 1 个表行中的多个 ID 查询到 1 个查询中的另一个表

来自分类Dev

MYSQL 从一个表插入到另一个表但出现错误:子查询返回多于 1 行

Related 相关文章

  1. 1

    从一个数据库表插入到另一个

  2. 2

    从一个表中选择多个列,并作为行插入到另一个表中

  3. 3

    Mysql查询在多个条件和列上从一个表插入到另一个表

  4. 4

    从一个表插入行到另一个jQuery

  5. 5

    将表值从一个表插入到另一个表

  6. 6

    在MySQL php中将ID从一个表插入到另一个表

  7. 7

    在MySQL中验证从一个表到另一个表的字段

  8. 8

    在VBA中将动态行从一个工作表复制到另一个工作表

  9. 9

    Laravel中从一个表到另一个表中相同字段的多个外键

  10. 10

    如何在MySQL中将一个表中的行插入到另一个表中

  11. 11

    KDB:如何将行从一个表插入/插入到另一个表

  12. 12

    在oracle中查询以从一个表中获取多个记录并输入另一个表

  13. 13

    如何从一个表中选择许多行并插入到另一个表中特定行的特定JSONB字段中?但是在单个原始SQL查询中

  14. 14

    T-SQL仅使用变量中的值而不是一列将行的副本从一个表插入到另一个表

  15. 15

    PSQL查询根据条件将记录从一个表插入到另一个表

  16. 16

    MySQL基于选择从一个表插入到另一个表

  17. 17

    从一个数据库表插入到另一个

  18. 18

    使用子查询从另一个表向一个表中插入(多个)新行?

  19. 19

    想要从一个表中的数据插入到PHP中的另一个表?

  20. 20

    Mysql查询在多个条件和列上从一个表插入到另一个表

  21. 21

    从一个表插入行到另一个jQuery

  22. 22

    使用雄辩的/查询生成器将多个值从一个表插入到另一个表

  23. 23

    将记录从一个表中的特定列插入到另一个表中,具体取决于多个条件

  24. 24

    如果MySQL中尚不存在将行从一个表插入到另一个表中

  25. 25

    从一个表到另一个表的 Oracle 事务更新量

  26. 26

    Sql从一个表插入id到另一个表中的条目

  27. 27

    从多个表中选择,插入另一个表 Oracle SQL 查询

  28. 28

    将 1 个表行中的多个 ID 查询到 1 个查询中的另一个表

  29. 29

    MYSQL 从一个表插入到另一个表但出现错误:子查询返回多于 1 行

热门标签

归档