« はてなブックマークで当方に嫌がらせしているbeondなる人物の正体について | トップページ | 聖火リレーの興味は、もはや「2ちゃんねるから何人逮捕者が出るか?」だ »
データベースで、auto_incrementなIDをリセットする方法について調べていたら、MySQLについては、以下のような方法があった(参考)。
MySQLの場合
alter table テーブル名 auto_increment=1;
SQLiteについても、あってるのかどうか知らないけど、以下の方法でリセット出来た。
SQLiteの場合
update sqlite_sequence set seq=1 where name='テーブル名';
ActiveRecordを拡張するとしたら、以下のような感じかな?
RAILS_ROOT/vendor/plugins/auto_increment/init.rb
class ActiveRecord::ConnectionAdapters::MysqlAdapter
def set_auto_increment( table_name, value )
execute( "alter table #{table_name} auto_increment=#{value};" )
end
end
class ActiveRecord::Base
def self.auto_increment=(value)
value = value.to_i
return if value <= 0
connection.set_auto_increment( quoted_table_name, value )
end
end
2008 04 25 | 固定リンク
この記事のトラックバックURL:
この記事へのトラックバック一覧です: auto_incrementの値を1に戻す方法: