①$s->query("DELETE FROM tbj0"); ②$s->query("ALTER TABLE tbj0 AUTO_INCREMENT=1"); 以上ですが

補足

どうもすみません! 参考書にありますね! ほんのわずかですが。 ①は「レコード全体の削除」 ②は「連続番後の値の初期化」  なので ぶっちゃけ 掲示板の「タイトル」のみプログラムです。 tbj0はMySQLなので mysql> CREATE TABLE tbj0(guru INT AUTO_INCREMENT PRIMARY KEY,sure VARCHAR(30),niti DATETIME,aipi VARCHAR(20)); 以上を削除する場合  AUTO_INCREMENTを初期化する プロセスまでは必要ないとは思うのですが、少し気になります。 できれば 詳しく知りたいです。 よろしくお願いいたします。

MySQL43閲覧

ベストアンサー

1

1人がナイス!しています

>以上を削除する場合 AUTO_INCREMENTを初期化する プロセスまでは必要ないとは思う ここで言う「削除」とは、何を指してますか? 表の削除(DROP TABLE)ならAUTO_INCREMENTは表毎なので、存在そのものがなくなります。

ThanksImg質問者からのお礼コメント

超助かります。 今後ともよろしくお願いいたします。

お礼日時:5/20 23:36

その他の回答(1件)

1

>以上を削除する場合 AUTO_INCREMENTを初期化する >プロセスまでは必要ないとは思うのですが、少し気になります。 データを全削除しておきながら採番が途中からの方が妙な気がしませんか? 採番の開始を(1 以外に)指定していたとしても、中途半端な数字からは嫌な気がしますけど・・・ そもそも delete で全レコードを削除するという処理をプログラムで書くのはやったことがないです。全レコードを削除するようなケースでは(delete ではなく)truncate table を使います(当然採番情報もリセットされます)。 そもそも滅多にやることではありませんが「完全に初期化したいケース」ならば(そして create table のSQL文を保持しているなら)drop table してから create table することが多いです。

1人がナイス!しています