如何添加UNIQUE AUTO_INCREMENT FIRST id列

时间:2016-02-24 00:08:17

标签: mysql ruby-on-rails ruby sequel

我希望数据库迁移基本上是以下SQL:

ALTER TABLE `myTable` ADD COLUMN `id` INT AUTO_INCREMENT UNIQUE FIRST;

是否有正确的续集迁移?我已经与以下内容非常接近了,但它似乎并不是我想要的:

Sequel.migration do
  change do
    alter_table :my_table do
      add_column :id, Bignum, null: false, unique: true
    end
  end
end

具体来说,似乎缺少自动增量,并且不会是第一列。

1 个答案:

答案 0 :(得分:1)

这应该有效:

DB.add_column :myTable, :id, Bignum, null: false, unique: true, :auto_increment=>true 

请注意,这并不能为您提供FIRST。如果您需要FIRST,则必须使用原始SQL:

DB.run "ALTER TABLE `myTable` ADD COLUMN `id` INT AUTO_INCREMENT UNIQUE FIRST"

另一个区别是你的SQL没有指定NOT NULL,但你的续集代码确实如此。