首页
学习
活动
专区
工具
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.8K20

如何在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.5K20
  • 如何在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.9K11

    分布式 PostgreSQL - Citus 架构及概念

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

    1.5K20

    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.6K20

    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.6K92

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

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

    2.2K30

    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、可从多个上游服务器,做数据的聚集和合并 发布者跟订阅者的关系;一个发布者可以被多个订阅者订阅。多个发布者可以被同一个订阅者订阅。

    2.1K10

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

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

    3.9K20

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

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

    1.7K30

    列存zedstore

    列存 列存使用同样的结构,每列都是一个B-tree,以TID为索引值。所有列的B-tree存储到同一个物理文件中。 0号block为元数据页,保存B-tree的root指针。...叶子页和行存类似,但是只存储单个字段值而不是整个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

    2.1K40

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

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

    2.6K20

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

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

    63420

    使用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.7K30

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

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

    1.9K50

    PostgreSQL修改最大连接数

    修改最大连接数在配置文件中找到 max_connections 参数,并将其值修改为所需的最大连接数。...例如,将最大连接数设置为 1000,可以将以下行添加到配置文件中:ini 代码解读复制代码max_connections = 1000保存配置文件。...可以使用以下命令重启 PostgreSQL 服务: 代码解读复制代码sudo service postgresql restart或者,根据不同的操作系统和安装方式,可能需要使用其他命令来重启 PostgreSQL...例如,所有用户的硬/软限制(soft limit)文件描述符数设置为 65536,所有用户的硬/软限制进程数设置为 65536,可以添加以下行:markdown 代码解读复制代码* hard nofile...(pid);根据进程 ID 获取连接的详细信息csharp 代码解读复制代码select pg_stat_get_activity(pid);查询当前使用的连接数csharp 代码解读复制代码select

    39410
    领券