在 Ruby on Rails 中自动增加非主键字段
Posted
技术标签:
【中文标题】在 Ruby on Rails 中自动增加非主键字段【英文标题】:Auto increment a non-primary key field in Ruby on Rails 【发布时间】:2011-03-14 07:47:00 【问题描述】:在 RoR 迁移中,如何自动递增非主键字段?我想在 db 定义中执行此操作,而不是在模型中。
【问题讨论】:
【参考方案1】:您需要执行一条 SQL 语句。
statement = "ALTER TABLE `users` CHANGE `id` `id` SMALLINT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT"
ActiveRecord::Base.connection.execute(statement)
您可以在迁移中手动输入
请注意,这只是一个示例。最终的 SQL 语句语法取决于数据库。
【讨论】:
我是否正确地假设您的回答是 Rails 不提供不直接执行 SQL 语句的方法来做到这一点?我希望类似:t.integer :auto_i, :auto_increment => true
能够工作(但它没有)。
是 Rails 在迁移中不提供 :auto_increment 关键字
如果你想在 Rails 中使用所有关键字或其他好东西,那么 . “用于 ROR 的 rubymine IDE”将非常有用。我使用了过去 6 个月。
注意这是mysql
的具体解决方案。 Postgres 不支持AUTO_INCREMENT
。跳入这个问题以获取 Postgres 解决方案***.com/questions/787722/postgresql-autoincrement以上是关于在 Ruby on Rails 中自动增加非主键字段的主要内容,如果未能解决你的问题,请参考以下文章