gpt4 book ai didi

postgresql - 合并 POstgreSQL 9.1 hstore 列中的现有列

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

我有一个 PostgreSQL 9.1 数据库表(我们称它为 MyTable)如下所示:

 gid | name | address | phone | colA | colB | colC | colD
------------------------------------------------------------
| | | | | | |

我在这个数据库中启用了hstore:

 CREATE EXTENSION hstore;

现在,我想创建一个 hstore 列 (colH),用于存储列 colA colB colC colD,其中的键是它们的名称和值,它们的值。

ALTER TABLE MyTable ADD COLUMN colH hstore;

现在,如何在 hstore 列中插入值?我认为 INSERT 会有所帮助,但我不知道该怎么做。请帮忙。

最佳答案

插入用于创建新的,而不是更改现有行的列。

添加hstore列后需要使用update:

update mytable
set colh = hstore('cola', cola)||hstore('colb', colb)||hstore('colc', colc)||hstore('cold', cold);

或者 - 稍微紧凑一点:

update mytable
set colh = hstore(array['cola','colb','colc','cold'], array[cola,colb,colc,cold]);

这里假定 cola、colb、colc 和 cold 的类型为 text 或 varchar。如果不是,则需要正确转换它们。

之后,您可以删除不再需要的列。

关于postgresql - 合并 POstgreSQL 9.1 hstore 列中的现有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14557363/

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