2012-03-18 12 views
-3

Railsに一意の自動インクリメントプライマリキー(IdCustomer)を追加するにはどうすればよいですか?複数のキーがある場合はどうなりますか?Railsの移行で主キーを追加する方法は?

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 

私のコードで手に入れてください。今すぐに私になるよ

rake aborted! An error has occurred, all later migrations canceled:

Mysql2::Error: Incorrect table definition; there can be only one auto column and it must be defined as a key: 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 date, created_at datetime NOT NULL, updated_at datetime NOT NULL) ENGINE=InnoDB

+0

誰かが知っていますか? hm – byCoder

答えて

0

auto_incrementを1つ以上設定することはできません。 IdCard int(11) DEFAULT NULLの後にauto_increment PRIMARY KEYを削除し、代わりにUNIQUEと入力してください。

+0

どのように私は尋ねた移行でこれを行う! – byCoder

関連する問題