【发布时间】:2011-03-14 07:47:00
【问题描述】:
在 RoR 迁移中,如何自动递增非主键字段?我想在 db 定义中执行此操作,而不是在模型中。
【问题讨论】:
标签: ruby-on-rails database migration primary-key auto-increment
在 RoR 迁移中,如何自动递增非主键字段?我想在 db 定义中执行此操作,而不是在模型中。
【问题讨论】:
标签: ruby-on-rails database migration primary-key auto-increment
您需要执行一条 SQL 语句。
statement = "ALTER TABLE `users` CHANGE `id` `id` SMALLINT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT"
ActiveRecord::Base.connection.execute(statement)
您可以在迁移中手动输入
请注意,这只是一个示例。最终的 SQL 语句语法取决于数据库。
【讨论】:
t.integer :auto_i, :auto_increment => true 能够工作(但它没有)。
mysql的具体解决方案。 Postgres 不支持AUTO_INCREMENT。跳入这个问题以获取 Postgres 解决方案stackoverflow.com/questions/787722/postgresql-autoincrement