No.185


【MySQL】AUTO_INCREMENT属性カラムの制約

AUTO_INCREMENT属性

 MySQLでAUTO_INCREMENTを使ったときに下記のようなエラーが出た。

ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

 恥ずかしいことに十数年知らなかったのだが、MySQLでは

`AUTO_INCREMENT`属性のカラムは主キー(`PRIMARY KEY`)もしくはユニークキー(`UNIQUE KEY`)でなければいけない。

 ということらしい。

 特にマニュアルには明記はないんだけど、同ページに事例として書かれているものは確かに上の条件を満たしている。

MySQLマニュアル AUTO_INCREMENTの使用

 いままでAUTO_INCREMENT属性のカラムには席次反射でPRIMARY KEYを設定していたので気がつかなかった。びっくり。