悪徳商法?マニアックス ココログ支店

悪徳商法総合情報紹介ページ ~騙すなら、素敵にだまして~  本家「悪徳商法?マニアックス」は、こちら

« はてなブックマークで当方に嫌がらせしているbeondなる人物の正体について | トップページ | 聖火リレーの興味は、もはや「2ちゃんねるから何人逮捕者が出るか?」だ »

2008.04.25

auto_incrementの値を1に戻す方法

データベースで、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::SQLiteAdapter
def set_auto_increment( table_name, value )
execute( "update sqlite_sequence set seq=#{value} where name='#{table_name}';" )
end
end

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:
http://app.cocolog-nifty.com/t/trackback/26611/40986433

この記事へのトラックバック一覧です: auto_incrementの値を1に戻す方法:

コメント

コメントを書く