简体   繁体   English

如何将新项目添加到 PostgreSQL 中的字符变化数组

[英]How to add a new item into character varying array in PostgreSQL

I am trying to start an plpgsql function to store in a variable several elements of an array of type character varying, I would like to know what is the syntax to store element by element.我正在尝试启动一个 plpgsql function 以在变量中存储类型字符变化的数组的几个元素,我想知道逐个元素存储的语法是什么。

If I understood your question correctly, you want to append to an array using a loop in plpgsql .如果我理解正确你的问题,你想 append 到数组使用plpgsql中的循环。

Below are a couple strategies for doing that:以下是一些这样做的策略:

create or replace function add_new_item_to_array() returns void as $$
    DECLARE
        tmp_elem varchar;
        elem1 varchar;
        elem2 varchar;
        elem3 varchar;
        varchar_array varchar[];
    BEGIN
        elem1 := 'elem1';
        elem2 := 'elem2';
        elem3 := 'elem3';
        -- option 1: literal array construction, if you know all the elements in advance
        varchar_array := array[elem1, elem2, elem3];

        -- option 2: array construction with a loop using sql query
        varchar_array := array[]::varchar[];
        FOR tmp_elem IN SELECT elem1 UNION SELECT elem2 UNION SELECT elem3 LOOP
            varchar_array := varchar_array || tmp_elem;
            -- alternative syntax:
--             varchar_array := array_append(varchar_array, tmp_elem);

        END LOOP;
        RAISE NOTICE 'varchar_array: %', varchar_array;
    END

$$ language plpgsql;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM