Hasura - Postgres 数据库 table 自增 PK 问题
Hasura - Postgres database table auto increment PK problem
在使用 Hasura 向 Postgres 数据库插入新行时,我有一个关于 table 主键的非常有趣的问题。
简而言之,这就是发生的事情:
我目前正在开发的应用程序有一个旧后端,它使用了 MySql 数据库,我的任务是将所有数据移动到新的 Hasura/Postgress 数据库,所以我编写了移动该数据的脚本并且一切顺利.由于用户与其他 table 的关系,脚本插入了所有用户数据,包括他们的主键。
当我尝试插入具有 Hasura 突变的新用户时出现问题:
Uniqueness violation. duplicate key value violates unique constraint
"users_pkey"
我假设发生的是:我对用户的 PK 不是默认类型 integer/auto-increment ,
它是:
id - integer, primary key, unique, default: nextval('users_id_seq'::regclass)
并且当我尝试插入新行时,它会尝试为其分配 Hasura 记得它插入的最新 PK,并且具有该 PK 的用户已经从 MySql 数据库中导入。
有什么方法可以编辑我的 table PK 使其成为 integer/auto-increment 或者有人有一些创造性的解决方案。
提前致谢!
您需要使用此 SQL 命令调整序列种子的值:
ALTER SEQUENCE users_id_seq RESTART WITH ...`
您必须为此 SQL 命令提供的值是您的 table.
的 MAX(id) + 1
在使用 Hasura 向 Postgres 数据库插入新行时,我有一个关于 table 主键的非常有趣的问题。 简而言之,这就是发生的事情: 我目前正在开发的应用程序有一个旧后端,它使用了 MySql 数据库,我的任务是将所有数据移动到新的 Hasura/Postgress 数据库,所以我编写了移动该数据的脚本并且一切顺利.由于用户与其他 table 的关系,脚本插入了所有用户数据,包括他们的主键。 当我尝试插入具有 Hasura 突变的新用户时出现问题:
Uniqueness violation. duplicate key value violates unique constraint "users_pkey"
我假设发生的是:我对用户的 PK 不是默认类型 integer/auto-increment , 它是:
id - integer, primary key, unique, default: nextval('users_id_seq'::regclass)
并且当我尝试插入新行时,它会尝试为其分配 Hasura 记得它插入的最新 PK,并且具有该 PK 的用户已经从 MySql 数据库中导入。
有什么方法可以编辑我的 table PK 使其成为 integer/auto-increment 或者有人有一些创造性的解决方案。 提前致谢!
您需要使用此 SQL 命令调整序列种子的值:
ALTER SEQUENCE users_id_seq RESTART WITH ...`
您必须为此 SQL 命令提供的值是您的 table.
的 MAX(id) + 1