我想让create_table rails命令的自动递增id列从500开始。
我找到了如何在sql:
中设置初始auto_increment 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}
任何人都知道如何让此语句的自动递增id列从500开始:
create_table :contents do |t|
t.string :type, :null => false
t.string :name, :null => false
end
答案 0 :(得分:4)
试试这个:
create_table(:student, :options => 'AUTO_INCREMENT = 500') do |t|
t.column :name, :string, :limit => 50
# Other fields here
end
答案 1 :(得分:2)
设置它的SQL语句是:
ALTER TABLE student AUTO_INCREMENT = 500;
答案 2 :(得分:2)
有很多方法可以做到这一点,特定于某些RDBMS(您没有指定您正在使用的RBDMS,但MyIsam表指示MySQL)。
但它的味道很难闻;你不应该关心合成密钥,除了它是独特的和单调增加的。你关心的事情表明可能存在更大的问题。
答案 3 :(得分:0)
这只是一个猜测,但您是否尝试在ID为499的表格中插入(然后删除)一行?