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

如何复制属于一个id的多个行,并将其添加到postgreSQL中的所有其他id

在PostgreSQL中,可以使用INSERT INTO语句来复制属于一个id的多个行,并将其添加到其他id中。具体步骤如下:

  1. 首先,使用SELECT语句选择属于特定id的多个行。假设我们要复制的id为1,可以使用以下语句:
  2. 首先,使用SELECT语句选择属于特定id的多个行。假设我们要复制的id为1,可以使用以下语句:
  3. 这将返回所有id为1的行。
  4. 接下来,使用INSERT INTO语句将选定的行插入到其他id中。假设我们要将这些行插入到id为2和3的行中,可以使用以下语句:
  5. 接下来,使用INSERT INTO语句将选定的行插入到其他id中。假设我们要将这些行插入到id为2和3的行中,可以使用以下语句:
  6. 这将在id为2和3的行中插入与id为1的行相同的数据。

注意事项:

  • your_table是要操作的表名,column1, column2, ...是要复制的列名。
  • 如果要复制的行中有自增长的主键列,需要确保在插入时不会产生冲突。
  • 如果要复制的行中有外键关联,需要确保在插入时不会破坏关联完整性。

这是一个基本的方法来复制属于一个id的多个行,并将其添加到PostgreSQL中的其他id。根据具体的业务需求,可能需要进一步调整和优化。

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

相关·内容

Citus 分布式 PostgreSQL 集群 - SQL Reference(创建和修改分布式表 DDL)

每个创建分片都分配有一个唯一分片 ID,并且它所有副本都具有相同分片 ID。...以这种方式分布表称为引用表。它们用于存储集群多个节点需要频繁访问数据。 引用表常见候选包括: 较小表需要与较大分布式表连接。 多租户应用程序缺少租户 ID 列或不与租户关联表。...例如,假设一个多租户电子商务网站需要为其任何商店交易计算销售税。税务信息并非特定于任何租户。将其合并到共享表是有意义。...除了将表分布为单个复制分片之外,create_reference_table UDF 将其标记为 Citus 元数据表引用表。...适当 co-location 所带来收益比任何重新平衡开销都更重要。 要显式共置多个表,请分布一张表,然后将其他表放入其 co-location 组。

2.7K20

如何在CentOS 7上安装PostgreSQL关系数据库

PostgreSQL关系数据库系统是一个功能强大,可扩展符合标准开源数据库平台。本指南将帮助您在CentOS 7 Linode上安装和配置PostgreSQL。...有关支持数据类型完整说明,请参阅PostgreSQL文档。 添加和更新 在本节,您将使用UPDATE在您创建现有输入值。然后,你将创建一个全新INSERT。...验证您更改: SELECT * FROM employees; 您将看到已将开始日期2016-09-28添加到第一,并且已为“Jane Smith”创建了一个: employee_id | first_name...此外,角色也可以创建为一组其他角色,类似于Linux“组”.PostgreSQL角色全局适用,因此您无需创建如果您想在同一服务器上授予对多个数据库访问权限,则两次使用相同角色。...,以便可以将其权限作为一个整体进行管理。

4.3K20

如何在Ubuntu 18.04上使用PostgreSQL 10设置逻辑复制

在逻辑复制方案,高级写入操作从主数据库服务器流式传输到一个多个副本数据库服务器 在物理复制方案,二进制写操作反而从主服务器流式传输到副本服务器,从而产生原始内容逐字节精确副本。...按照如何在Ubuntu 18.04上安装和使用PostgreSQL步骤1,在两台服务器上安装PostgreSQL 10 。...但是,它必须包含db-master上表每个列。其他列不得包含NOT NULL或具有其他约束。如果他们这样做,复制将失败。...第5步 - 测试和故障排除 要测试主服务器和副本服务器之间复制,让我们向widgets表添加一些数据验证它是否正确复制。...期权DB-主 ; 该sammy数据库角色缺少必要权限来访问widgets表DB-主 ; 该表未添加到db-master上发布

2.9K50

如何在CentOS 7上使用Barman备份,恢复和迁移PostgreSQL数据库

介绍 PostgreSQL一个开源数据库平台,因其易于维护,成本效益以及与其他开源技术简单集成而广受网络和移动应用程序开发人员欢迎。...该文件包含一个全局参数部分,以及要备份每个服务器单独部分。默认文件包含一个名为main示例PostgreSQL服务器部分,该部分已注释掉。您可以将其用作指南来设置要备份其他服务器。...这意味着PostgreSQL WAL文件 - 在备份目录下复制时 - 将以gzip压缩格式保存 取消该reuse_backup注释保持link默认值。...创建完整备份时,如果由于某种原因复制操作失败,Barman将尝试连接到PostgreSQL服务器三次 取消该basebackup_retry_sleep注释保持默认值30。...然后,它将使用目录wals文件来应用事务更改使目标服务器处于一致状态。 列出备份 有一个特定Barman命令可列出服务器所有备份。那个命令是barman list-backup。

5.8K11

分布式 PostgreSQL - Citus 架构及概念

应用程序将它们查询发送到 coordinator 节点,coordinator 节点将其转发给相关 worker 累积结果。...对于每个查询,coordinator 要么将其路由到单个 worker 节点,要么将其并行化到多个节点,具体取决于所需数据是位于单个节点上还是多个节点上。...因此,您可以创建普通表选择不对其进行分片。这对于不参与连接查询小型管理表很有用。一个示例是用于应用程序登录和身份验证用户表。 创建标准 PostgreSQL 表很容易,因为它是默认值。...前者创建额外备份分片放置针对所有更新它们所有它们运行查询。后者效率更高,利用 PostgreSQL 流式复制将每个节点整个数据库备份到一个 follower 数据库。...如果所有三个表都包含 - 并且由 - store_id 列分布,那么限制在单个存储所有查询都可以在单个工作节点上高效运行。即使查询涉及这些表任意组合也是如此。

1.4K20

Edge2AI之使用 FlinkSSB 进行CDC捕获

transactions; 尝试一些其他psql命令: \d- 列出数据库所有表 \d - 描述表结构 实验 2 - 在 SSB 创建 PostgreSQL CDC 表...实验 4 - 复制表更改 在上一个实验,您可视化了应用到 SSB 数据库表更改捕获。现在您将创建一个 SSB 作业以将捕获更改复制到另一个表。...在 SSH 会话再次连接到 PostgreSQL 数据库创建一个新表来接收复制数据: psql --host localhost --port 5432 --username cdc_user cdc_test...这会将其他元数据暴露给流,例如对表执行操作类型以及更改列前后值。 这种类型信息对于分析数据如何变化用例可能很重要,而不是简单地查看它最新状态。...在本实验,您将创建一个 SSB 作业,该作业从源数据库读取更改日志并将其发布到 Kafka 主题,以及 Debezium 提供其他元数据信息。

1.1K20

重磅 | 十年来扩展PostgreSQL一些经验和教训

其次是subscribers,notifications是我们一个最大数据集。记录大小差异很大,从很小记录(例如“发送给我所有用户”通知)到包含特定订户ID列表很大记录都很大。...1 表溢出 表溢出是表死元组消耗磁盘空间,该表可能无法使用该磁盘空间,也可能无法再使用其他表或索引。 想象一下,您创建一个插入十条记录,每条记录占用一页磁盘空间,而无需进行遍历。...4 模式优化 我将介绍一个优化解决如何避免由数据保留策略引起膨胀。使用PostgreSQL表分区,您可以将一个表变成多个表,并且在您应用程序仍然只有一个外观。...如果发现自己处于逻辑复制无法“保持”情况,则基本上有一个选择:一次将数据移动到另一个数据库一个表(使用逻辑复制,因为它支持这种细粒度复制)。复制目标可以在PostgreSQL升级版本上。...较新PostgreSQL版本提供了强大支持,可以使用其内置分区功能来拆分表。使用内置支持一个优势是,您可以查询一个逻辑表获取结果,或者在多个基础表之间拆分数据。

1.5K20

Ubuntu 16.04如何使用PostgreSQL全文搜索

在本教程,我们将使用PostgreSQL存储包含假设新闻网站文章数据,然后学习如何使用FTS查询数据库仅选择最佳匹配。最后一步,我们将对全文搜索查询实施一些性能改进。...', 'Jo'); 既然数据库有一些要搜索数据,我们可以尝试编写一些查询。 第二步 - 准备和搜索文档 这里第一步是使用数据库表多个文本列构建一个文档。...此外,该功能允许您指定要使用语言以及所有单词是否必须存在于结果或仅包含其中一个单词。 该@@运营商标识,如果tsvector匹配tsquery或其他tsvector。...我们将在此实现一个很好解决方案是在插入行时生成转换后文档,并将其其他数据一起存储。这样,我们可以使用查询检索它,而不必每次都生成它。...与第二步不同,这里我们还需要准备转换后文档并将其添加到新document列,如下所示: sammy=# INSERT INTO news (id, title, content, author, document

2.7K60

索引与PostgreSQL新手

但是,在每个查询基础上添加自定义索引并不是一种非常可扩展方法。您可能会发现自己有多个冗余索引,这些索引会减慢写入操作。 如果大小写字母无关紧要,您可以运行迁移以将所有值小写,使标准索引正常工作。...但我们刚刚设法将其加速了几个数量级,降至 1毫秒以下!无论数据大小如何,新解决方案都将保持高性能,并且查询仅从内存缓存获取三个缓冲区块。此外,通过利用扩展,我们可以避免添加额外索引。 2....5.更新交易范围 通常推荐做法是将数据库提交数量保持在最低限度。这意味着将多个更新查询包装到单个事务应该可以提高写入性能。 对于许多常见场景,这是一个最佳策略。...这意味着在漫长单事务更新过程尝试更新相同行任何其他进程都必须等待它完成。 因此,后台工作进程执行大规模更新可能会使 Web 服务器进程超时导致面向用户应用程序中断。...上面的示例一次更新 10k 。整个操作可能需要比在单个事务执行更长时间。但是,每个更新步骤都会快速提交数据库更改,因此其他进程不会卡住。

1.3K20

5个容易忽视PostgreSQL查询性能瓶颈

但是,在每个查询基础上添加自定义索引并不是一种非常可扩展方法。您可能会发现自己有多个冗余索引,这些索引会减慢写入操作。 如果大小写字母无关紧要,您可以运行迁移以将所有值小写,使标准索引正常工作。...但我们刚刚设法将其加速了几个数量级,降至 1毫秒以下!无论数据大小如何,新解决方案都将保持高性能,并且查询仅从内存缓存获取三个缓冲区块。此外,通过利用扩展,我们可以避免添加额外索引。 2....5.更新交易范围 通常推荐做法是将数据库提交数量保持在最低限度。这意味着将多个更新查询包装到单个事务应该可以提高写入性能。 对于许多常见场景,这是一个最佳策略。...这意味着在漫长单事务更新过程尝试更新相同行任何其他进程都必须等待它完成。 因此,后台工作进程执行大规模更新可能会使 Web 服务器进程超时导致面向用户应用程序中断。...上面的示例一次更新 10k 。整个操作可能需要比在单个事务执行更长时间。但是,每个更新步骤都会快速提交数据库更改,因此其他进程不会卡住。

3.3K92

分布式 PostgreSQL 集群(Citus)官方教程 - 迁移现有应用程序

这些表一个副本将在所有节点上维护。常见示例包括国家代码查找、产品类别等。 本地表。 这些通常不连接到其他表,并且不包含 distribution key。...在应用程序与 Citus 一起工作后,我们将了解如何将生产数据从源数据库迁移到真正 Citus 集群。 应更新写入表应用程序代码和任何其他摄取进程以包含新列。...为了防止在生产中启动后才遇到此类问题,可以设置一个配置值来记录命中多个分片查询。在正确配置和迁移多租户应用程序,每个查询一次只能命中一个分片。...如果您正在管理自己 PostgreSQL 安装,请将这些设置添加到 postgresql.conf: wal_level = logical max_replication_slots = 5 # has...切换到 Citus 停止与旧数据库所有连接 当复制赶上源数据库的当前状态时,还有一件事要做。由于复制过程性质,序列值不会在目标数据库上正确更新。

2.1K30

PostgreSQL逻辑复制之pglogical篇

将public架构所有添加到default复制集中 SELECT pglogical.replication_set_add_all_tables('default', ARRAY['public...--------+------------+--------------+---------------- (0 rows) 方法1: 前面讲解创建复制集中;3.2.2“将public架构所有添加到...通常,当应复制所有列时,这将设置为NULL,这是默认值 row_filter - 过滤表达式,默认为NULL(无过滤),有关详细信息,请参阅(过滤)。警告:在使用有效筛选器同步数据时要小心。...** 示例:对表tbl_lottu02字段{id, name, job} 字段列过滤;且对条件 ‘id > 10’ 进行行过滤 ** # provider 节点 创建表插入测试数据 create...五、场景介绍 5.1、可从多个上游服务器,做数据聚集和合并 发布者跟订阅者关系;一个发布者可以被多个订阅者订阅。多个发布者可以被同一个订阅者订阅。

1.4K10

分布式 PostgreSQL 集群(Citus)官方示例 - 多租户应用程序实战

有了这个,您可以跨多个节点进行扩展,而无需完全重新编写或重新构建您应用程序。 我们在 Citus 通过确保 schema 每个表都有一个列来清楚地标记哪个租户拥有哪些来做到这一点。...在广告分析应用程序,租户是公司,因此我们必须确保所有表都有一个 company_id 列。 当为同一公司标记行时,我们可以告诉 Citus 使用此列来读取和写入同一节点。...在租户之间共享数据 到目前为止,所有表都通过 company_id 分发,但有时有些数据可以由所有租户共享,并且不“属于”特定任何租户。...schema 和硬件基础设施,我们如何容纳想要存储其他人不需要信息租户?...如果您有现有架构希望将其迁移到 Citus,请参阅多租户转换。

3.8K20

分布式 PostgreSQL 集群(Citus)官方示例 - 实时仪表盘

每次您一个客户端收到 HTTP 请求时,您服务都会收到一条日志记录。您想要摄取所有这些记录创建一个 HTTP 分析仪表板,为您客户提供洞察力,例如他们网站服务 HTTP 错误数量。...在此示例,延迟也很关键,原始数据量也很高,历史数据和实时数据都很重要。 在本节,我们将演示如何构建第一个示例一部分,但该架构同样适用于第二个和许多其他用例。...这意味着特定站点所有数据都将存在于同一个分片中。...最重要是:它还在 site_id 上进行分片,对分片计数和复制因子使用相同默认配置。...准确地回答这个问题需要将所有以前见过访问者列表存储在汇总表,这是一个令人望而却步数据量。然而,一个近似的答案更易于管理。

1.6K30

列存zedstore

列存 列存使用同样结构,每列都是一个B-tree,以TID为索引值。所有B-tree存储到同一个物理文件。 0号block为元数据页,保存B-treeroot指针。...叶子页和存类似,但是只存储单个字段值而不是整个tuple。为了通过TID获得一数据,需要遍历TID所有B-tree,获取所有列字段值。同样,顺序扫描会扫描一个B-tree锁一个树。...Zheap每页有小、固定“事务槽”,但是zedstore通过undo指针指向元组。压缩下,压缩会将其压缩到几乎为零。 Implementation Insert:插入一,将分成多列。...已压缩元组原样添加到页,页面以压缩数据进行重写,压缩后页仍放不下,则发生分裂。 Toast:当字段值非常大时,分割成多个chunk,每个chunk存储到同一个物理文件专门一个toast页上。.../message-id/flat/20150611230316.GM133018%40postgresql.org 4] https://www.postgresql.org/message-id/flat

2K40

PostgreSQL架构】为什么关系型数据库是分布式数据库未来

应用程序本身负责如何处理数据放置,架构更改,查询多个节点,复制表等,因此,如果执行手动分片,最终将在应用程序实现自己分布式数据库,这可能甚至更多。昂贵。...如果没有联接,则需要在每一存储大量冗余信息,这将大大增加存储,扫描表或将其保留在内存中所需硬件数量。通过联接,您可以存储紧凑不透明ID并进行高级过滤,而不必读取所有数据。...参考表看起来像其他任何表一样,但是它们在群集中所有节点之间透明地复制。在典型星型模式所有维表都将是参考表,而事实表则是分布式表。然后,事实表可以与任何列上任何维表结合(并行!)...对于跨碎片交易,Citus使用PostgreSQL内置2PC机制,添加了一个分布式死锁检测器,该检测器使用PostgreSQL内部函数从所有节点获取锁表。...另一个例子是Citus用户,他吸收了260亿不良数据,使用分布式更新对其进行了修复,平均每秒修改了70万。 批量加载是分析大量数据应用程序一项基本功能。

2.5K20

精通Java事务编程(4)-弱隔离级别之防止更新丢失

,计算新值写回更新后值) 在复杂值中进行本地修改:例如,将元素添加到 JSON 文档一个列表(需要解析文档,进行更改写回修改文档) 两个用户同时编辑 wiki 页面,每个用户通过将整个页面内容发送到服务器来保存其更改...实现方案 一般采用对读取对象加排它锁来实现,以便在更新完成之前没有其他事务可以读它。这种技术有时被称为游标稳定性(cursor stability) 另一个实现方案是强制所有的原子操作在单线程执行。...= 'robot' AND game_id = 222 # 指示DB对返回所有结果要加锁。...但多主或无主复制多副本DB,通常允许多个并发写,异步复制到副本,所以会出现多个最新数据副本。此时加锁或CAS将不再适用。...正如系列文章(5)【检测并发写入】一节所述,多副本DB通常允许并发写入创建多个冲突版本值(互称为兄弟),使用应用层代码或特殊数据结构来解决、合并这些多版本。

59820

使用SSH隧道保护三层Rails应用程序通信

在您学习本教程时,请务必安装最新版本Ruby,在撰写本文时,是Ruby 2.5.1。 安装PostgreSQL。本节还介绍了如何安装此三层设置所需一个程序包libpq-dev。...同样,如果入侵者要获得对 隧道 用户访问权限,他们既不能编辑Rails应用程序目录文件,也不能使用sudo命令。 在每台服务器上,创建一个名为 tunnel 其他用户。...在 Web服务器上 ,使用以下命令在终端显示 tunnel 用户公钥: sammy@web-server$ sudo cat /home/tunnel/.ssh/id_rsa.pub 选择文本输出并将其复制到系统剪贴板...杀死你现在创建隧道,因为我们将建立一个更可靠设置。由于连接在后台,因此您必须找到其进程ID才能将其终止。...第八步 - 配置Nginx 此时,已经设置了所有必需SSH连接和tunnel,并且您三个服务器层一个都能够相互通信。

5.6K30

Citus 分布式 PostgreSQL 集群 - SQL Reference(摄取、修改数据 DML)

有时将多个 insert 语句放在一个包含多行单个 insert 中会很方便。它也比重复数据库查询更有效。...协调器将重定向回适当分片。因为所有数据都必须通过单个节点,所以这种方法效率不高。 如果对 Citus 使用哪种方法有疑问,请使用 EXPLAIN 命令,如 PostgreSQL 调优中所述。...首先,当您重复执行聚合查询时,它必须遍历每个相关并重新计算整个数据集结果。如果您使用此查询来呈现仪表板,则将聚合结果保存在每日页面浏览量表查询该表会更快。...您可以使用标准 PostgreSQL UPDATE 和 DELETE 命令更新或删除分布式表。...但是,要达到这个速度,您将需要使用许多并行、长期存在连接考虑如何处理锁定。有关更多信息,您可以查阅我们文档横向扩展数据摄取部分。

1.8K50

从 Notion 分片 Postgres 吸取教训(Notion 工程团队)

现在,您可以轻松启动其他主机以适应增长。不幸是,现在您数据位于多个位置,因此您需要设计一个在分布式环境中最大限度地提高性能和一致性系统。 为什么不保持垂直缩放?...决策 1:对所有与块有传递关系数据进行分片 由于 Notion 数据模型围绕块概念展开,每个块在我们数据库占据一,因此 block(块) 表是分片最高优先级。...因为分片表每一要么是一个块,要么与一个块相关,并且每个块都属于一个工作区,所以我们使用 workspace ID 作为分区键(partition key)。...一个追赶过程遍历审计日志并将每次更新应用到新数据库,根据需要进行任何修改。 我们选择了 audit log 策略而不是逻辑复制,因为后者在初始快照步骤难以跟上 block 表写入量。...workspace ID(我们分区键)尚未填充到旧数据库,回填此列会加剧我们单体应用负载。相反,我们在写入分片时即时回填每一,需要一个自定义追赶脚本。 旨在实现零停机迁移。

1.2K20
领券