だから私はちょうど私のテーブルを切り捨てましたが、今私の主キーは自動インクリメントされません。テーブルに2番目のアイテムを追加するたびに、1062が返されます。キー「PRIMARY」の重複エントリ「0」
テーブルを切り捨てると、自動インクリメントが1にリセットされるだけだと思いました。
私は自分に何ができるかを探し回っていますが、切り捨てるだけだと言う人がたくさんいます。
私がしたこと
"TRUNCATE TABLE mytable;"
私は何か間違ったことをしたに違いない。
このバグはMysql5.0には影響せず、6.0、5.1.23、および5.1BKで再現可能です。
以下はすぐに利用可能であり、効果的な回避策は、テーブルが切り捨てられた後にautoinc値を変更することです。
切り捨ての直後にautoinc値を再初期化します
alter table tablename AUTO_INCREMENT = n;
/*必要に応じてnを設定します*/
MySQL 5.0.13以降、外部キー制約があるかどうかに関係なく、AUTO_INCREMENTカウンターはTRUNCATETABLEによってゼロにリセットされます。
あなたがする必要があるのは:
SET FOREIGN_KEY_CHECKS = 0;
テーブルを切り捨てて、に戻します
SET FOREIGN_KEY_CHECKS = 1;
TRUNCATEが起動されると、テーブルハンドラーは最後に使用されたAUTO_INCREMENT値を記憶しませんが、最初からカウントを開始します。これは、通常はシーケンス値を再利用しないMyISAMとInnoDBにも当てはまります。
このクエリを使用すると機能します。
ALTER TABLE table_name
CHANGE table_id
table_id
INT(11)NOT NULL AUTO_INCREMENT