如何使用 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 循环选择字段值并将它们插入到另一个表中的主要内容,如果未能解决你的问题,请参考以下文章