繁体   English   中英

使用PostgreSQL更新多个表中的主键

Update primary keys in multiple tables using PostgreSQL

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我在PostgreSQL的单个模式中有11个表。 每个表都有一个名为“ id”的列,该列应该是唯一的主键。 不幸的是,某些表的ID在其他表中。

如何创建新序列并使用完全唯一的值更新所有表的ID值? 我必须一次做一个序列和一张桌子吗?

我是SQL的新手,所以除了创建序列和更新单个表之外,我不知道从哪里开始。

1 个回复

您的问题有点含糊,但我认为您的id是int / bigint类型的。 并且您希望这些“ id”不仅在一个表中具有全局唯一性。

可能有很多选择。 这是最简单但可能不是最优雅的方法之一。 首先创建一个提供ID的序列,例如:

CREATE SEQUENCE globally_unique_id;

然后只需遍历所有11个表进行更新,例如:

UPDATE table1 SET id = nextval('globally_unique_id');

使用此一个序列将不会为您所有表中的任何行提供相同的ID。

如果在“ id”列的其他表中有未在更新时声明为级联的外键约束,则麻烦会更大。 但这是另一个故事。

当然,您无需逐表进行操作。 例如,您可以查询的Postgres系统表的所有表-就像问在这里 - (或使手表名称的数组)和环路表用的ID在一些特殊构造的查询或过程。

但是我认为:“仅” 11个表可能不值得对其进行编码。 另一方面,如果以后需要再次执行相同的操作,则可能会很有用。

1 使用引用主键作为其他表的主键的外键

我正在创建一个MySQL数据库,该数据库跟踪客户财务信息的多个版本。 为此,我正在创建一个客户表: 而且我必须为每个客户跟踪多个财务报表: 最后,我必须为我们在每个“工作表”上获取的所有财务信息创建多个表 如何正确创建我的财务表,以便finsheet的唯一标识符是财务的 ...

2 不同表上多个主键的外键

我有一个带有内置完整会计系统的物业管理应用程序。 我有一个日记帐分录表,该表控制各种会计活动的所有过帐,例如: 发票 付款方式 账单 存款 在某些情况下,有必要将这些实体连接到日记帐分录表,以按不同的属性和单位汇总会计分录。 我正在寻找做到这一点的最佳方法。 我 ...

3 在一个Postgresql中更新多个表

我有三个表A,B,C。表B和表C包含表A的id中的外键。 更新表单时,通过标识外键将数据更新到这三个表。 这是我的更新声明 如何将这两个UPDATE语句加入到连接中? ...

4 更新POSTGRESQL中的主键

我有一个以前项目的数据库,我想在另一个项目中使用,出于安全原因,我需要更新其中一个表的ID。 问题是该表被其他表中的外键大量引用: 现在,如果我更改table_table上的id,则table_photo的引用将不起作用。 我可能会使用这样的东西来改变ID: 我已经阅读过某些 ...

5 如何使用多个主键通过 string_split 连接表?

我有两个甚至三个主键存储在名为“PrimaryKeys”的列中。 我必须在连接条件中动态使用这些键。 我试过这个,我想我必须使用 string_split 首先从列中拆分主键,然后在连接条件中连接它们。 但我不确定如何。 例如,如果我在列中有 (Id, Person_name, Address) ...

6 WAMP更新和迁移后,mysql表没有结构/主键

我们已将WAMP移至服务器上的另一驱动器-旧版本为WAMP 2.4,新版本为WAMP 2.5。 我们在新驱动器上全新安装了2.5,并从旧安装中复制了www和mysql数据文件夹。 它正在“运行”-站点似乎运行良好-但我发现数据库结构似乎已消失。 所有数据库表都没有主键,并且在phpMy ...

7 如何在phpmyadmin表中删除多个主键?

我正在使用phpmyadmin.I创建了一个包含一个主键和5个字段的表。 但是现在所有的整数字段都变成了主键。 我尝试使用drop命令,但它没有帮助。 如何从表中删除所有主键? ...

8 将来自不同表的多个int主键转换为Identity

我有十几个左右的结构相似的数据库,每个数据库大约有50个不同的表,其中一些表使用顺序的int [Id]作为主键和标识。 在某些时候,这些数据库已迁移到不同的远程基础架构,即从Azure迁移到AWS,在此过程中的某个位置丢失了Identity属性,因此,新的自动插入无法正常工作,因为它无法自 ...

9 如何在R中(有效地)连接具有多个主键的表?

我有一个关于 R 中 dplyr 包中的连接的小问题。我有 2 个(大)数据框,我想加入。 它们有多个共同的列,但一个足以加入它们。 现在我做这样的事情: 这个解决方案没问题,但是您可以看到连接使用id和name作为键,即使我们不需要两者。 我担心,因为我使用更大的数据框并且我必须通过多次迭代来 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM