【问题标题】:Hasura - Postgres database table auto increment PK problem [duplicate]Hasura - Postgres 数据库表自动增量 PK 问题 [重复]
【发布时间】:2021-08-27 19:32:20
【问题描述】:

在使用 Hasura 向 Postgres DB 插入新行时,我有一个关于表主键的非常有趣的问题。 简而言之,这就是发生的事情: 我目前正在开发的应用程序有一个旧的后端,它使用了 MySql 数据库,我的任务是将所有数据移动到新的 Hasura/Postgress DB,所以我编写了移动这些数据的脚本,它运行良好。由于与其他表的用户关系,脚本插入了所有用户数据,包括他们的主键。 当我尝试使用 Hasura 突变插入新用户时出现问题:

违反唯一性。重复键值违反唯一约束 "users_pkey"

我假设发生的是:我对用户的 PK 不是默认类型 integer/auto-increment , 它是:

id - 整数,主键,唯一,默认:nextval('users_id_seq'::regclass)

当我尝试插入新行时,它会尝试为其分配 Hasura 记得插入的最新 PK,并且具有该 PK 的用户已经从 MySql DB 导入。

有什么方法可以编辑我的表 PK,使其成为整数/自动增量,或者有人有一些创造性的解决方案。 提前致谢!

【问题讨论】:

    标签: mysql postgresql graphql hasura


    【解决方案1】:

    您需要使用此 SQL 命令调整序列种子的值:

    ALTER SEQUENCE users_id_seq RESTART WITH ...`
    

    你必须给这个 SQL 命令的值是你的表的 MAX(id) + 1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-22
      • 2016-06-09
      • 2015-07-05
      • 1970-01-01
      相关资源
      最近更新 更多