Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails创建中更改PostgreSQL默认ID序列_Ruby On Rails_Postgresql - Fatal编程技术网

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

Ruby on rails 在Rails创建中更改PostgreSQL默认ID序列,ruby-on-rails,postgresql,Ruby On Rails,Postgresql,我有一个导入数据库的sql转储文件。此sql转储中的所有记录的id都从900到2500 所以问题是,如果我从我的rails应用程序创建新记录,它将自动获得id=1,下一个将获得2,3,4等。我猜当我创建900s记录时,我将得到一个错误,因为id=900已经存在 注意:我不能在我的sql转储文件中将我的id更改为从1开始,因为另一个表按id引用它 有什么解决办法吗 我使用PostgreSQLRails从数据库获取它使用的id,对于postgres,每个表的id字段都有相应的序列,因此为了让Rail

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

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

注意:我不能在我的sql转储文件中将我的id更改为从1开始,因为另一个表按id引用它

有什么解决办法吗


我使用PostgreSQL

Rails从数据库获取它使用的id,对于postgres,每个表的
id
字段都有相应的序列,因此为了让Rails跳过
id
s块,您只需更新相应的序列:

ALTER SEQUENCE plural_table_name_id_seq RESTART WITH 2501;
如果愿意,您可以将其放入Rails迁移中,或者在数据库上运行它