MySQLでテーブル作成時にAUTO_INCREMENTの部分で下記のエラーが出ました。
mysql> CREATE TABLE `user` (`id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL); ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
このエラーの対処法をご紹介します。
AUTO_INCREMENTのエラー対処法
PRIMARY_KEY(主キー)を設定する
MySQLでauto_incrementを付与する場合は、
そのカラムを「PRIMARY_KEY(主キー)にしてインデックスを付ける」必要があります。
主キーなしのエラーが出るSQLがこちらです。
CREATE TABLE `user` ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL );
主キーを付与した、修正後のSQLがこちらです。
「PRIMARY KEY(id)」を追加しています。
CREATE TABLE `user` ( `id` int(10) NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), `name` varchar(255) NOT NULL );
追加されたuserテーブルを確認すると、idにauto_incrementが付与されています。
AUTO_INCREMENTの動作確認
試しにidを指定せずに2件レコードを追加してみます。
mysql> INSERT INTO user (name) VALUES ('name'); Query OK, 1 row affected (0.01 sec) mysql> INSERT INTO user (name) VALUES ('name'); Query OK, 1 row affected (0.01 sec)
このようにidが自動で付与されていることが確認できます。
コメント