如何在Rails迁移中添加主键?

时间:2012-03-18 16:24:55

标签: mysql ruby-on-rails migration

如何在Rails中添加唯一的,自动递增的主键(IdCustomer)?如果我有一把钥匙怎么办?

class CreateCustomers < ActiveRecord::Migration
  def change
    create_table :customers do |t|
      t.integer :IdCustomer
      t.string :Login
      t.string :Password
      t.string :Email
      t.string :Skype
      t.integer :ICQ
      t.string :Firstname
      t.string :Lastname
      t.string :Country
      t.string :State
      t.string :City
      t.string :Street
      t.string :Building
      t.integer :Room
      t.string :AddressNote
      t.date :DateOfReg
      t.integer :CustGroup
      t.float :TotalBuy

      t.timestamps
    end
  end
end

请帮我解决这个问题,请使用我的代码。现在我得到了

  耙子流产了!发生错误,所有后续迁移都已取消:

     

Mysql2 ::错误:表定义不正确;只有一个汽车   列,必须将其定义为键:CREATE TABLE credit_cards   (id int(11)DEFAULT NULL auto_increment PRIMARY KEY,IdCustomer   int(11),IdCard int(11)DEFAULT NULL auto_increment PRIMARY KEY,   Number varchar(255),NameOfCard int(11),ExpiryDate日期,   created_at datetime NOT NULL,updated_at datetime NOT NULL)   ENGINE = InnoDB的

1 个答案:

答案 0 :(得分:2)

您不能设置超过1列auto_increment。如果您想使该列唯一,请在auto_increment PRIMARY KEY之后删除IdCard int(11) DEFAULT NULL并添加UNIQUE