我在Rails 2.3.8上使用PostgreSQL数据库,我需要在我的表上重新启动自动增量ID。我怎么能这么做呢?
htrmnn0y1#
如果截断表,则可以在末尾使用RESTART IDENTITY子句。范例:TRUNCATE TABLE foo RESTART IDENTITY;TRUNCATE DOCUMENTATION
TRUNCATE TABLE foo RESTART IDENTITY;
disho6za2#
你可以通过以下方式来做到这一点:ActiveRecord::Base.connection.execute("TRUNCATE TABLE your_table_name RESTART IDENTITY")
ActiveRecord::Base.connection.execute("TRUNCATE TABLE your_table_name RESTART IDENTITY")
aamkag613#
你可以直接在PostgreSQL中使用“alter sequence”:http://www.postgresql.org/docs/current/static/sql-altersequence.html特别是“重新开始”我不知道你是如何通过rails抽象来实现的。
slsn1g294#
试试看:
ActiveRecord::Base.connection.reset_pk_sequence!(table_name)
并检查此答案以了解更多细节:https://stackoverflow.com/a/7814519/1392282
ac1kyiln5#
查看setval
SELECT setval('foo', 42); Next nextval will return 43 SELECT setval('foo', 42, true); Same as above SELECT setval('foo', 42, false); Next nextval will return 42
u3r8eeie6#
如果你想从表中删除所有数据,并希望重置ID,然后尝试下面的代码。ActiveRecord::Base.connection.execute(“TRUNCATE TABLE your_table_name RESTART IDENTITY”)但是,如果表中存在某种关系,并且您希望删除表中的所有数据以及相关的表数据,则请尝试下面的代码。ActiveRecord::Base.connection.execute(“TRUNCATE TABLE your_table_name RESTART IDENTITY CASCADE”)谢谢,如果需要修改,请提出建议。
wooyq4lh7#
您可以在Rails中使用ActiveRecord。你可以在你的rails控制台上运行下面的命令:
Table_name.reset_primary_key
也可以使用SQL:
SQL
7条答案
按热度按时间htrmnn0y1#
如果截断表,则可以在末尾使用RESTART IDENTITY子句。
范例:
TRUNCATE TABLE foo RESTART IDENTITY;
TRUNCATE DOCUMENTATION
disho6za2#
你可以通过以下方式来做到这一点:
ActiveRecord::Base.connection.execute("TRUNCATE TABLE your_table_name RESTART IDENTITY")
aamkag613#
你可以直接在PostgreSQL中使用“alter sequence”:http://www.postgresql.org/docs/current/static/sql-altersequence.html
特别是“重新开始”
我不知道你是如何通过rails抽象来实现的。
slsn1g294#
试试看:
并检查此答案以了解更多细节:https://stackoverflow.com/a/7814519/1392282
ac1kyiln5#
查看setval
u3r8eeie6#
如果你想从表中删除所有数据,并希望重置ID,然后尝试下面的代码。
ActiveRecord::Base.connection.execute(“TRUNCATE TABLE your_table_name RESTART IDENTITY”)
但是,如果表中存在某种关系,并且您希望删除表中的所有数据以及相关的表数据,则请尝试下面的代码。
ActiveRecord::Base.connection.execute(“TRUNCATE TABLE your_table_name RESTART IDENTITY CASCADE”)
谢谢,如果需要修改,请提出建议。
wooyq4lh7#
您可以在Rails中使用ActiveRecord。
你可以在你的rails控制台上运行下面的命令:
也可以使用
SQL
: