假设,我有一张桌子:
create table mytable (
"x" text,
"y" text
);
我有一些数组,其值为x
并为y
called arr_x
and arr_y
:
["x1", "x2", "x3"]
["y1", "y2", "y3"]
我想通过一个查询插入这些值。期望的结果是:
x | y
-------
x1 | y1
x2 | y2
x3 | y3
我尝试做类似的事情,但失败了:
insert into mytable ("x", "y")
select unnest(arr_x::text), unnest(arr_y::text);
知道如何插入这些值吗?我是 Postgres 的新手。
你的演员阵容错误,你无法取消嵌套text
.
Try
INSERT INTO mytable (x, y)
SELECT
unnest('{x1, x2, x3}' :: TEXT []),
unnest('{y1, y2, y3}' :: TEXT []);
请注意,如果两个数组的长度不同,这种形式的选择行为会很奇怪。
postgres 9.4+ 中的 unnest 函数允许您扩展多个数组,每个输出列使用一个数组:
INSERT INTO mytable
SELECT *
FROM unnest('{x1, x2, x3}' :: TEXT [], '{y1, y2, y3, y4}' :: TEXT [])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)