NP_cles()

123456789101112131415161718192021222324252627282930

欠番回収?

 
投稿者:hsur 投稿日時:2005-07-31 - 11:07
カテゴリー:Nucleus Tips - - トラックバック(0)- Views: 210

Nucleusではitemidの生成にMySQLのAUTO INCREMENTを使っているので、エントリを削除するとそのエントリ番号は欠番になり、後からエントリを追加してもその番号が埋まることはありません。

エントリの番号が飛んでいても、別にどうということはないので殆ど自己満足にすぎないのですがが、今日はちょっと一手間かけて、その番号のエントリを回収してみました。ちょっと副作用の心配がありますが、いまのところは大丈夫そうです。

これからしばらくは、itemidがものすごく若かかったりしますが気にしないでください。

PHPで書いたスクリプトのロジックはこんな感じ

 ・itemidのmax(itemid)をDBからselect
 ・DBに存在しているitemidを全てselectしてArrayに挿入
 ・Range(1, max(itemid) )とやって、max(itemid)までのArrayを得る
 ・Array_diff()で上記2つのArray差分を求める
 ・求めた差分のitemidを使って、DBにエントリをドラフトで挿入
 ・管理者画面にログインすると、山のようにドラフトができている

    このエントリは役に立ちましたか?

      

    トラックバックについて [policy]

    Trackback URL:
    Trackbacks
    このエントリにトラックバックはありません

    Comments [policy]

    No comments yet

    Add Comments

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン