id
カラムに厳密な主キー数値シーケンスを維持する必要があるデータベースがあります。私はその後、使用して再集計し、インクリメントのリセットを行う必要がある行を削除するとき、すなわち等の1、2、3、4、5、テーブルのAUTO_INCREMENTをPHPでリセット
は今:
SET @count = 0;
UPDATE `Main`
SET `id` = @count:= @count + 1;
ALTER TABLE Main
AUTO_INCREMENT =1;
をに入力したとき、これは正常に動作しますMySQLのコマンドラインとはまったく同じですが、PHPスクリプトコマンドから実行する必要があります。私が使用します。
$sql="SET @count = 0";
$result=$database->query($sql);
$sql="UPDATE Main SET id = @count:= @count + 1";
$result=$database->query($sql);
$sql="ALTER TABLE Main AUTO_INCREMENT =1";
$result=$database->query($sql);
は今最初の二つの再集計ラインが正常に動作しますがAUTO_INCREMENT
ラインは、自動インクリメントカウンタはリセットされません。再び"ALTER TABLE Main AUTO_INCREMENT =1;"
は、MySQLコマンドラインからは正常に動作しますが、PHPスクリプトでは正常に動作しません。
注:データベースはmysqli_query
コマンドを使用します。
[MySQLでの削除後の自動インクリメント]の複製の可能性があります(http://stackoverflow.com/questions/2214141/auto-increment-after-delete-in-mysql) – Jigar
これらをすべて同じ行で実行してみてください: AUTO_INCREMENT = 1; "' '' –
いいえ、私はこれを前に試してみました。もう一度やり直してください。しかし、それは主キーの再計算もしません。 – Greg