如何使用 for 循环选择字段值并将它们插入到另一个表中

Posted

技术标签:

【中文标题】如何使用 for 循环选择字段值并将它们插入到另一个表中【英文标题】:How to select field values and insert them in another table with for loop 【发布时间】:2017-11-30 20:32:44 【问题描述】:

我想在 Postgres 中编写一个函数,该函数从表 A 中选择一列,然后循环遍历这些值并将它们插入表 B。

这是我目前所拥有的:

declare 
    aid integer
begin
    for aid in select a_id from table_a
    loop
        insert into table_b (a_id)
            values (aid)
    end loop;
end;

但是,我在for aid in select a_id from table_a 行遇到了语法错误。这样做的正确方法是什么?

【问题讨论】:

【参考方案1】:

您不需要循环 - 只需一个插入选择语句:

INSERT INTO table_b (a_id)
SELECT a_id FROM table_a

【讨论】:

如果我需要将另一个字段与作为函数参数的 a_id 一起插入到 table_b 怎么办? @ddd 只是选择它作为文字 但是select 返回的是一个整数数组,而要插入的另一个变量是单个值。将一个数组和一个整数同时插入两个整数字段是如何工作的? @ddd 此评论完全不清楚。请使用您要解决的实际用例编辑您的问题

以上是关于如何使用 for 循环选择字段值并将它们插入到另一个表中的主要内容,如果未能解决你的问题,请参考以下文章

循环遍历一张表中的列值并将另一列中的 COUNTIF 值粘贴到另一张表中

雪花我们如何遍历临时表的每一行并将其值插入到另一个表中,其中每个字段的值都是单行?

一种从一个表中选择字段并插入到另一个表的方法?

ORACLE数据库 存储过程 中 从几张级联表中查询 出结果集,循环添加到另一张表的某一字段

MSSQL php 从一种编码中选择并插入到另一种

sql server里如何将一组用逗号分隔的字符串分解并插入到另一张表中,比如:11873,27827, 也可能是好多