やったこと

webサービスを作るときに考えたことを垂れ流します

歯抜けになったrowidはvacuumで再セットされる

sqlite3のデータベースで、ある行を削除するとrowidの値が歯抜けになってしまった。

■phpでユーザ3を削除
  $sql = "delete from user_table where user_id = :user_id";
  $stmt = $db->prepare($sql);
  $stmt->bindValue(':user_id', 3, PDO::PARAM_INT);
  $stmt->execute();

■テーブルを見るとrowidが歯抜けになってる
  ROWID user_id user_name
  1     1       あおい
  2     2       ひなた
  4     4       ここな
  5     5       かえで

バキュームを実行するとrowidをちゃんと詰めてくれた。

■phpでvacuum実行
  $sql = "vacuum";
  $stmt = $db->prepare($sql);
  $stmt->execute();

■テーブルを見るとrowidが詰められてる
  ROWID user_id user_name
  1     1       あおい
  2     2       ひなた
  3     4       ここな
  4     5       かえで