MySQL AUTO_INCREMENT 

PHPにて、CSVファイルを fgetcsvで読み込んで、データベースに保存しようとした際に以下のエラーが出ました。

1062:Duplicate entry…..

データが重複してはいけないフィールドで、既に存在しているデータを保存しようとすると出るエラーなので、ちょくちょく出くわすんですが、今まで気づいていなかったことがあったのでメモしておきます。

ということで、1062エラーはどうでもよくて・・・、話題は「AUTO_INCREMENT」のことだったりします。

【いまさら気づいたこと】

  • AUTO_INCREMENTを設定したカラムって、0からではなく、1から番号が振られるんですね。
  • AUTO_INCREMENTを設定したカラムって、重複した値を格納できるんですね。(UNIQUE設定してたらダメですが)

ついでにAUTO_INCREMENTについての参考ページ;
AUTO_INCREMENTの設定 – テーブルの作成 – MySQLの使い方

  • AUTO_INCREMENTを設定するカラムには同時にインデックスを設定する必要がある
  • AUTO_INCREMENTはテーブル内の1つのカラムにしか設定できない
  • AUTO_INCREMENTを設定したカラムにはDEFAULTは設定できない
  • AUTO_INCREMENTには正の値しか格納できない(負の数も可能だが予期しない結果となる)
MySQL, PHP, 備忘録 | , |