4

すでに 3 行あるテーブルに要素を挿入しようとしています。

usuarios =[ id (primary, autoincrement), fid , first_name , last_name.. ..]というテーブルです。

したがって、ID が0,1,2の行がすでに 3 行あります。

そして、このクエリを実行しようとしているとき (id 属性の値を設定していないことに注意してください)

INSERT INTO usuarios (fid,email,pass,first_name,last_name,avatar,bday,fecha,id_loc,id_loc_from) 
       VALUES       (-1,'toni@ideadeia.com','72253f579e7dc003da754dad4bd403a6','','','',NOW(),NOW(),'','')

次の mysql エラーが発生します。

Duplicate entry '0' for key 1

追加: この 3 つの項目がどのように挿入されたのかわかりません (インターフェイス経由の場合、コンソール クエリによる場合など)。

問題は、Primary Keyが自動インクリメントであることを確認するにはどうすればよいかということです。どのように設定するのですか?(それで問題は解決しますか?)

4

1 に答える 1

3

テーブルを変更する権限がある場合は、次のステートメントを使用して自動インクリメントとして設定できるはずです。

ALTER TABLE usuarios  modify id INT(11) NOT NULL AUTO_INCREMENT;

上記が何らかの理由で機能しない場合は、代わりに列を削除して再作成することを推奨するバグの報告を見てきました。これらの投稿で推奨される構文は次のとおりです。

ALTER TABLE usuarios  
         DROP COLUMN id;

ALTER TABLE usuarios  
         ADD COLUMN idINT(11) NOT NULL AUTO_INCREMENT FIRST;

警告:最初にテスト データベースでこれを行ってください。テーブルがこれを外部キーとして使用している場合は、注意が必要です。せいぜい失敗するか、最悪の場合、すべての関係を壊す可能性があります。

MySql リファレンス マニュアルには多くの情報があります。

于 2012-06-01T21:15:38.163 に答える