歯抜けになった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 かえで