0

私はテーブルautosを持っています.in table is column id as auto_incrementAND indexed asprimary key

ID をリセットしたい。つまり、ID がキューに入れられる必要が1ある2,3,4,5,...

ID をリセットするには、次のクエリを実行します。

ALTER TABLE autos AUTO_INCREMENT = 1

これは、現在、最大IDは同等の行数でなければならないことを意味しますか?

しかし、このコード

    $res = $db->query("SELECT COUNT(*) AS cnt FROM autos")->fetchAll(PDO::FETCH_ASSOC);
    echo "rows count: ".$res[0]['cnt']."<br>";


    $res = $db->query("SELECT MAX(id) AS id FROM autos")->fetchAll(PDO::FETCH_ASSOC);
    echo "max id".$res[0]['id'];

戻り値

rows count: 376733
max id: 500000

最大IDと行数が一致しないのはなぜですか? どこが間違っていますか?

4

2 に答える 2

-2

COUNT 関数はテーブル内の行数を返し、MAX 関数はテーブル内の列の最大値を返します。

たとえば、テーブルに ID 値 5000 のレコードが 1 つしかない場合、count は 1 を返し、MAX(ID) は 5000 を返します。

レコードの挿入中に、自動インクリメント カラムに値を指定しないか、NULL 値を指定すると、MySQL はこの自動インクリメント カラムに AUTO-INCREMENT カウントを割り当て、ポインタを増やします。

于 2013-04-03T13:45:58.717 に答える