【问题标题】:Auto-generate many alphanumeric strings in postgres and add them to JSONB as an array to insert在 postgres 中自动生成许多字母数字字符串并将它们作为数组添加到 JSONB 以插入
【发布时间】:2018-08-22 20:20:45
【问题描述】:

我正在尝试在 postgres 中生成多个字母数字字符串,将它们添加到 JSONB 内的数组中,然后返回新的 JSONB 或开始将它们插入数据库。

我有一个基本设置,并且想至少看看在我开始大规模创建之前创建了什么,但当前错误是 invalid input syntax for type json

CREATE OR REPLACE FUNCTION "StringGeneration" (
  "@length"              INTEGER
)
RETURNS VARCHAR(25) AS
$func$
DECLARE "i" INTERGER;
DECLARE "strings" VARCHAR(25);
BEGIN
    SELECT array_to_string(ARRAY(SELECT chr((96 + round(random() * 25)) :: integer) 
    FROM generate_series(1,10)), '') INTO "strings";
    RETURN "strings";
END;
$func$ LANGUAGE PLPGSQL;

如果我可以看到上面创建的内容,那么我想把它包装起来

DECLARE "i" INTERGER;
WHILE "i" < "@length" LOOP
    "i" = "i" + 1;
END LOOP;

【问题讨论】:

    标签: postgresql generator jsonb


    【解决方案1】:

    问题是我没有正确构造返回值。

    CREATE OR REPLACE FUNCTION "PinGeneration" (
      "@length"              INTEGER
    )
    RETURNS VARCHAR(25) AS
    $func$
    DECLARE "pins" VARCHAR(25);
    BEGIN
      SELECT array_to_string(
        ARRAY(
          SELECT CHR((96 + ROUND(RANDOM() * 25)):: INTEGER) 
          FROM generate_series(1, 10)
        ),
      '') INTO "pins";
        RETURN "pins";
    END;
    $func$ LANGUAGE PLPGSQL;
    

    【讨论】:

      猜你喜欢
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 2019-12-04
      • 2018-01-09
      • 2014-11-21
      • 1970-01-01
      • 2015-06-27
      相关资源
      最近更新 更多