2009-04-23 1 views
2

私はSQLの初期のAUTO_INCREMENT id値を設定する方法の例を見つけた500create_tableに初期id値を設定するにはどうすればよいですか?

で起動するコマンドを自動CREATE_TABLEレール用のidカラムをインクリメント取得したい:

CREATE TABLE student (id int(2) NOT NULL auto_increment, name varchar(50) NOT NULL default '', class varchar(10) NOT NULL default '', mark int(3) NOT NULL default '0', sex varchar(6) NOT NULL default 'male', UNIQUE KEY id (id)) auto_increment=100000 TYPE=MyISAM; 

ので、私はRailsのAPIを見て、CREATE_TABLE方法でこれらのオプションを見ました:

The options hash can include the following keys: 

:id 
    Whether to automatically add a primary key column. Defaults to true. Join tables for has_and_belongs_to_many should set :id => false. 
:primary_key 
    The name of the primary key, if one is to be added automatically. Defaults to id. 
:options 
    Any extra options you want appended to the table definition. 
:temporary 
    Make a temporary table. 
:force 
    Set to true to drop the table before creating it. Defaults to false. 

ない私は必要なもの...私は成功せず、これを試してみました:

:options => {:auto_increment => 500} 

誰もが500で開始するには、この文の自動インクリメントID列を取得する方法を知っている:

create_table :contents do |t| 
    t.string :type,    :null => false 
    t.string :name,    :null => false 
end 

答えて

4

これを試してみてください。それをやった

create_table(:student, :options => 'AUTO_INCREMENT = 500') do |t| 
    t.column :name, :string, :limit => 50 
    # Other fields here 
end 
+0

を!ありがとう! – Matthew

+0

良い - 私は実際に投稿したときにそれをテストすることができませんでした! :-) –

0

これは単なる推測ですが、テーブルの行を(そして削除)を挿入しようとしています499のIDで?これを設定するには

2

SQL文は次のようになります。

ALTER TABLE student AUTO_INCREMENT = 500; 
2

これを行うには、いくつかの方法、いくつかのRDBMSの特定(あなたが使用しているRBDMS内容を指定しませんが、MyISAMテーブルがあります。 MySQLを示します)。

しかし、それは悪臭があります。ユニークで単調に増加する以外の合成キーについては何も気にしないでください。あなたが気にしていることは、大きな問題があるかもしれないことを示唆しています。

関連する問題