使用另一个表中的值进行大规模插入?

Posted

技术标签:

【中文标题】使用另一个表中的值进行大规模插入?【英文标题】:Massive insertion using value from another table? 【发布时间】:2018-09-27 18:54:16 【问题描述】:

有没有一种简单的方法可以使用另一个表中的值插入到一个表中? 假设我必须从 T1 获取 NAME 值,并且我想使用该值对另一个表进行硬编码插入。 插入值应该类似于 INSERT INTO T2 (NAME, AGE, GENDER) VALUES (NAME, 22, 'M') 名称从 T1 中获取,22 和“M”在插入查询中被硬编码。

【问题讨论】:

类似:***.com/questions/7323407/… 【参考方案1】:

您可以在插入中进行选择:

INSERT INTO T2 (NAME, AGE, GENDER) 
SELECT NAME, 22, 'M' FROM T1

也很方便,因为您可以放弃插入,只需在执行之前运行 select 以测试您正在导入的内容,并且可以轻松添加 WHERE NOT EXISTS 以使其具有幂等性。

【讨论】:

TY - 我在手机上,无法弄清楚格式:)【参考方案2】:

是的。 . . insert . . . select:

insert into t2 (name, age, gender)
   select name, 22, 'M'
   from t1;

【讨论】:

【参考方案3】:

您可以使用插入选择语句,在其中为您想要的值选择文字:

INSERT INTO t2
SELECT name, 22, 'M'
FROM   t1

【讨论】:

以上是关于使用另一个表中的值进行大规模插入?的主要内容,如果未能解决你的问题,请参考以下文章

SQL:插入期间自动递增值

如何将一个表中的值插入到另一个表中?

如何将一个表中的值插入另一个表,然后更新原始表?

Oracle 12c - 使用另一个表中的值在表中插入值

对一个表中的值使用 if else 将数据插入另一个表

根据另一个表中的值插入和/或更新记录