gpt4 book ai didi

ruby-on-rails - 在 Rails 创建中更改 PostgreSQL 默认 ID 序列

转载 作者:行者123 更新时间:2023-11-29 11:45:14 30 4
gpt4 key购买 nike

我有一个 sql 转储文件,我将其导入到我的数据库中。此 sql 转储中的所有记录的 ID 都从 900 到 2500。

所以问题是,如果我要从我的 Rails 应用程序创建新记录,它将自动获得 id = 1,下一个将获得 2、3、4 等。我想当我创建 900s 记录时,我将出现错误,因为 id=900 已经存在。

注意:我无法在我的 sql 转储文件中将我的 ID 更改为从 1 开始,因为另一个表通过 ID 引用它。

有什么解决办法吗?

我使用 PostgreSQL

最佳答案

Rails 从数据库中获取它使用的 id,在 postgres 的情况下,每个表的 id 字段都有相应的序列,所以为了让 Rails 跳过那 block ids 你只需要更新对应的sequence:

ALTER SEQUENCE plural_table_name_id_seq RESTART WITH 2501;

如果您愿意,您可以将它放入 Rails 迁移中,或者只在您的数据库上运行它。

关于ruby-on-rails - 在 Rails 创建中更改 PostgreSQL 默认 ID 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31017198/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com