gpt4 book ai didi

arrays - PostgreSQL 将列从 varchar 数组更改为 pair(varchar, integer) 数组

转载 作者:行者123 更新时间:2023-11-29 13:20:13 31 4
gpt4 key购买 nike

现在我有一个 varchar 数组(可为空且无默认值),并想将其转换为一对数组(varchar,integer)。对于整数值,暂时设置为0。

例如,["a", "b"] 将是 [("a", 0), ("b", 0)]

我已经知道我可以通过以下方式创建对类型:

CREATE TYPE keycount AS (key VARCHAR, count INTEGER);

但不知道如何使用 SET 来更改列。

感谢您的任何建议!

最佳答案

首先创建类型

CREATE TYPE keycount AS (key VARCHAR, count INTEGER);

现在您需要创建 Actor 阵容..

CREATE FUNCTION text_to_keycount(a text)
RETURNS keycount AS
$$
SELECT ($1, 0)::keycount
$$ LANGUAGE sql;

CREATE CAST (text AS keycount) WITH FUNCTION text_to_keycount(text);

SELECT ARRAY['asdf','asdf']::text[]::keycount[];

现在您可以创建表并转换类型 USING

CREATE TABLE foo ( a text[] );
INSERT INTO foo (a) VALUES
( ARRAY['1','2','3'] );
ALTER TABLE foo
ALTER COLUMN a
SET DATA TYPE keycount[]
USING CAST (a AS keycount[]);

关于arrays - PostgreSQL 将列从 varchar 数组更改为 pair(varchar, integer) 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43314684/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com