首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在postgres中将值从另一个表传递到jsonb

在PostgreSQL中,可以使用内置的函数和操作符将值从一个表传递到jsonb类型的列中。下面是一种常见的方法:

  1. 首先,确保你的表中包含一个jsonb类型的列,用于存储传递的值。例如,我们假设有一个名为"target_table"的表,其中包含一个名为"jsonb_column"的jsonb列。
  2. 然后,你需要从另一个表中选择要传递的值。假设你有一个名为"source_table"的表,其中包含一个名为"value_column"的列,该列包含要传递的值。
  3. 使用以下SQL语句将值从"source_table"传递到"target_table"的"jsonb_column"中:
代码语言:sql
复制
UPDATE target_table
SET jsonb_column = jsonb_set(jsonb_column, '{key}', to_jsonb((SELECT value_column FROM source_table WHERE condition)))
WHERE condition;

在上述语句中,你需要根据实际情况替换以下内容:

  • "target_table":目标表的名称。
  • "jsonb_column":目标表中存储传递值的jsonb列的名称。
  • "key":要在jsonb中设置的键的名称。
  • "source_table":包含要传递值的源表的名称。
  • "value_column":源表中包含要传递值的列的名称。
  • "condition":用于选择要传递值的行的条件。
  1. 运行上述SQL语句后,"target_table"中的"jsonb_column"将包含从"source_table"中选择的值。

需要注意的是,上述方法仅适用于将单个值从一个表传递到另一个表的jsonb列中。如果你需要传递多个值或更复杂的数据结构,可能需要使用其他方法,如使用jsonb_agg函数将多个值聚合为数组,然后再传递到目标表中。

推荐的腾讯云相关产品:腾讯云数据库 PostgreSQL,产品介绍链接地址:https://cloud.tencent.com/product/postgres

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在SQL Server中将从一个数据库复制另一个数据库

在某些情况下,作为DBA,您需要将模式和特定的内容数据库复制同一实例中或在不同的SQL实例中,例如从生产数据库中复制特定开发人员以进行测试或排除故障。...该语句将首先在目标数据库中创建,然后将数据复制这些中。如果您设法复制数据库对象,索引和约束,您需要为它单独生成脚本,然后您需要将脚本应用到目标数据库。...所有这些列都具有源中的确切名称、数据类型、nullability属性和列。 如果任何包含标识列,目标中的新列将继承标识属性,而不需要打开IDENTITY_INSERT。...使用ApexSQL脚本: ApexSQL提供的另一个有用工具是ApexSQL脚本工具,它可用于将SQL Server数据和模式源数据库复制目标数据库。...结论: 您所见,可以使用多个方法将源数据库复制目标数据库,包括模式和数据。这些工具中的大多数都需要您付出很大的努力来复制表的对象,比如索引和键。

8.1K40

SQL的未来:会话式解决问题

Postgresjsonb_array_elements,它会将 JSON 列表转换成一组行),并且如果您能够想象这种转换如何与连接进行交互,您可以非常简洁地编写强大的查询,示例 A 所示。...在这种情况中,您不仅仅需要 Postgres 知识:您还需要了解 AWS 策略的构建方式,然后您需要弄清楚如何使用 Postgres 联合和 JSONB 运算符对其进行查询。...在提供结果说明以及架构和必需的 JSON 列示例后,您为与已经看到比您多得多的 SQL 模式和 AWS 策略模式的实体对话设置了上下文。...在我对最新 GPT 的一次测试中,我想到了将 Postgres 惯用法翻译成 SQLite。Postgres 和 SQLite JSON 模式截然不同。...GPT 名义上是关于 Postgres 的,它很乐意提供帮助。你真正用这些 GPT 所做的就是设置一个初始上下文。在任何时候,您都可以将对话引导您希望它去的地方。

10010
  • Postgres 10 开发者新特性

    这意味着创建分区将变得更简单,并且开发者的角度来看,现在从分区数据中进行查询和插入与在非分区的数据进行这些操作是完全一致的。...默认情况下,可以在大于8MB大小的以及大于512KB的索引上启用并行扫描(parallel table scan),但是这些选项可以根据需要进行配置。...(adsbygoogle = window.adsbygoogle || []).push({}); Postgres 10另一个重要的新特性是支持JSON和JSONB类型列的全文搜索。...一旦我们创建了一个特定语言的全文索引,我们就可以通过JSON字段对进行直接搜索。...对浮点时间戳的支持已经被抛弃了,对于低于版本8的 pg_dump也已经不再提供支持,有关复制(replication)和pg_basebackup工具的一些默认也有所变化。

    1.9K20

    PostgreSQL基础(六):PostgreSQL基本操作(二)

    完整的函数介绍可查看下面链接: http://www.postgres.cn/docs/12/functions-string.html二、日期类型在PGSQL中,核心的时间类型,就三个。...-- 声明一个星期的枚举,自然只有周一~周日。create type week as enum ('Mon','Tues','Sun');-- 声明一张中的某个字段的类型是上面声明的枚举。...;构建存储JSONcreate table test( id bigserial, info json, infob jsonb);insert into test(info,infob...-- 如果存储的数组中的,有单引号怎么办?-- 使用两个单引号,作为一个单引号使用select '{''how''}'::varchar[];-- 如果存储的数组中的,有逗号怎么办?...(PGSQL中的数组索引1开始算,写0也是1开始算。)

    21510

    隐藏云 API 的细节,SQL 让这一切变简单

    外部数据包装器(FDW)是 Postgres 的一个插件类别,用于为外部数据创建数据库Postgres 的绑定 postgres_fdw 支持跨本地和远程数据库的查询。...这些外部通常将 JSON 结果映射成简单的列类型:日期、文本、数字。有时候,如果 API 响应消息中包含复杂的 JSON 结构( AWS 策略文档),结果会显示成 JSONB 列。...WITH 子句是一个公共表表达式(CTE),用于创建一个类似数据的临时对象。用 CTE 管道形式编写的查询比单一查询更容易阅读和调试。 a.users 是一个 JSONB 列。...这在将返回 JSON 数据的 API 映射到数据库时就非常有用。插件开发者可以将一些 API 数据移到普通的列中,另一些移到 JSONB 列中。如何决定哪些数据移到什么类型的列中?...这里的每一个映射都涉及另一个 API,但你不需要学习如何使用它们,它们会被建模成数据库,你只需要用基本的 SQL 语句来查询这些

    4.2K30

    MySQL与PostgreSQL对比

    json存储完的文本,json列会每次都解析存储的,它不支持索引,但你可以为查询创建表达式索引。 jsonb存储的二进制格式,避免了重新解析数据结构。...当我们比较写入数据速度时,由于数据存储的方式的原因,jsonb会比json稍微的慢一点。json列会每次都解析存储的,这意味着键的顺序要和输入的时候一样。...他们甚至可以直接Postgres向源文档数据库写入(插入、更细或删除)数据,就像一个一体的无缝部署。也可以对Hadoop集群或MySQL部署做同样的事。...18)序列支持更好 MySQL 不支持多个同一个序列中取 id, 而 PostgreSQL 可以。 19)对子查询支持更好 对子查询的支持。...索引组织的劣势:索引组织中上再加其它的索引时,其它的索引记录的数据位置不再是物理位置,而是主键值,所以对于索引组织来说,主键的不能太大,否则占用的空间比较大。

    9K10

    分布式 PostgreSQL 集群(Citus)官方示例 - 时间序列数据

    它在 Postgres 的声明性分区之上特别优雅。 例如,让我们 distribute 和 partition 一个包含历史 GitHub 事件数据的。...这告诉 Postgres将由 created_at 列在有序范围内进行分区。不过,我们还没有为特定范围创建任何分区。 在创建特定分区之前,让我们在 Citus 中分布。...请注意,Postgres 中的原生分区仍然很新,并且有一些怪癖。对分区的维护操作将获取可能会短暂停止查询的激进锁。...在 timestamp key 上使用范围分区时,我们可以将最新的分区制作成行,并定期将最新的分区滚动到另一个历史列式分区中。 让我们看一个例子,再次使用 GitHub 事件。...将行分区归档列式存储 当行分区已填满其范围时,您可以将其归档压缩的列式存储中。

    2.1K30

    「Postgresql架构」使用PostgreSQL中的JSONB数据类型加快操作

    版本9.4开始,PostgreSQL在使用JSON数据的二进制表示jsonb时提供了显着的加速,这可以为您提供增加性能所需的额外优势。...这有一些直接的好处: 效率更高, 加工速度明显加快 支持索引(这可能是一个重要的优势,我们稍后会看到), 更简单的模式设计(用jsonb列替换实体 - 属性 - (EAV),可以查询,索引和连接,从而使性能提高...books,我们只需将整个JSON字符串作为字段传递: INSERT INTO books VALUES (1, '{"title": "Sleeping Beauties", "genres":...检查遏制(Checking Containment) Containment测试一个文档(一个集合或一个数组)是否包含在另一个文档中。这可以使用@>运算符在jsonb数据中完成。...并且说明显而易见的是,作为9.4版中引入的一个特性,jsonb不是向后兼容的,你需要使用的jsonb关键字设置JSON将破坏传统平台上的SQL代码。

    6.1K20

    构建AI前的数据准备,SQL要比Python强

    有些 JSON 列每行模式都不相同,有些列包含混合数据类型,有些行有错误。此外,还需要计算「用户成为访问者的时间」以及「他们在两次访问间的等待时间」等特征。...但是,这次经历使我了解,Python 可以完成一项任务并不意味着这个任务就应该使用 Python 来做。...隐私法规不允许获取用户访问的具体日期,因此我们决定将记录日期归一化为用户首次访问的日期(首次访问后 5 天等)。对于我们的分析,重要的是要知道离上次访问过去了多久以及离首次访问过去了多久。...http://www.postgresqltutorial.com/postgresql-window-function/ 我对 SQL 的第一个误解是:SQL 无法扁平化不规则的 json 对我来说,另一个改变是我意识...虽然应用程序开发的角度来看这是有道理的,但是有条件地解析每行的每种可能性代价是很高昂的。难道我的最终归宿还是 Python?不不不!

    1.5K20

    构建AI前的数据准备,SQL要比Python强

    有些 JSON 列每行模式都不相同,有些列包含混合数据类型,有些行有错误。此外,还需要计算「用户成为访问者的时间」以及「他们在两次访问间的等待时间」等特征。...但是,这次经历使我了解,Python 可以完成一项任务并不意味着这个任务就应该使用 Python 来做。...隐私法规不允许获取用户访问的具体日期,因此我们决定将记录日期归一化为用户首次访问的日期(首次访问后 5 天等)。对于我们的分析,重要的是要知道离上次访问过去了多久以及离首次访问过去了多久。...http://www.postgresqltutorial.com/postgresql-window-function/ 我对 SQL 的第一个误解是:SQL 无法扁平化不规则的 json 对我来说,另一个改变是我意识...虽然应用程序开发的角度来看这是有道理的,但是有条件地解析每行的每种可能性代价是很高昂的。难道我的最终归宿还是 Python?不不不!

    1.5K20

    PostgreSQL JSONB 使用入门

    如果一个中的 JSON 对象包含同一个键超过一次,所有的键/对都会被保留(** 处理函数会把最后的值当作有效**)。 jsonb不保留空格、不保留对象键的顺序并且不保留重复的对象键。...json 的查询性能 准备数据 结构 -- account id 使用uuid 类型,需要先添加uuid-ossp模块。...(‘hello', '14:2 23:4')中,表示hello在14:2和23:4这两个位置出现过,在PG中这些位置实际上就是元组的tid(行号,包括数据块ID(32bit),以及item point...在中的每一个属性,在建立索引时,都可能会被解析为多个键值,所以同一个元组的tid可能会出现在多个key的posting list中。...jsonb的默认 GIN 操作符类支持使用顶层键存在运算符?、?&以及?| 操作符和路径/存在运算符@>的查询。

    8K20

    何在Ubuntu 18.04上安装和使用PostgreSQL

    (y/n) y 您可以通过传递一些额外的标志来获得更多控制。查看man页面查看选项: $ man createuser 您现在安装的Postgres有一个新用户,但您还没有添加任何数据库。...创建新数据库 Postgres身份验证系统默认使用的另一个假设是,对于用于登录的任何roles,这个roles将具有可以访问的同名数据库。...这serial类型的设备ID开始。此数据类型是自动递增整数。您还为此列提供了约束,这意味着primary key必须唯一且不为null。...例如,不要将列名包装在引号中,但是您输入的列确实需要引号。 另外要记住的是,您不要为equip_id列输入。这是因为只要创建中的新行,就会自动生成此项。...更新中的数据 到目前为止,您已经学习了如何向中添加记录以及如何删除它们,但本教程尚未介绍如何修改现有条目。 您可以通过查询所需的记录并将列设置为您要使用的来更新现有条目的

    5.4K60

    Citus 分布式 PostgreSQL 集群 - SQL Reference(查询分布式 SQL)

    特殊情况聚合的完整列表: avg, min, max, sum, count, array_agg, jsonb_agg, jsonb_object_agg, json_agg, json_object_agg...Postgres 的开源 TopN 扩展可以快速获得 “top-n” 查询的近似结果。该扩展将 top 具体化为 JSON 数据类型。...有关如何在 tdigest 扩展中使用聚合的完整说明,请查看官方 tdigest github 存储库中的文档。...https://docs.citusdata.com/en/v11.0-beta/sharding/data_modeling.html#colocation 注意 确保分布相同数量的分片中,并且每个的分布列具有完全匹配的类型...reference join 就像一个更灵活的 co-located join 版本, 因为引用没有分布在任何特定的列上,并且可以自由地 join 它们的任何列上。

    3.3K20

    何在Ubuntu 16.04上安装和使用PostgreSQL

    在本指南中,我们将演示如何在Ubuntu 16.04 VPS实例上安装Postgres,并介绍一些使用它的基本方法。...(y/n) y 您可以通过传递一些额外的标志来获得更多控制。...查看man页面查看选项: man createuser 创建一个新数据库 默认情况下,Postgres身份验证系统的另一个假设是,将存在一个与用于登录的角色同名的数据库,该角色可以访问该角色。...这serial类型的设备ID开始。此数据类型是自动递增整数。我们给这个列赋予了primary key约束,这意味着必须是唯一的而不是null。...首先,请记住不应引用列名,但是您输入的列确实需要引号。 要记住的另一件事是我们不输入equip_id列的。这是因为只要创建中的新行,就会自动生成此项。

    5.2K10
    领券