1075: Incorrect table definition; there can be only one auto column and it must be defined as a key(不正なテーブル定義。自動採番列は 1 つのみでキーとして定義が必要)
MySQL意味
AUTO_INCREMENT の規則に違反しているため、テーブル定義が無効。テーブルに持てる自動採番列は 1 つだけで、その列はキー (PRIMARY KEY または UNIQUE/インデックス) の一部でなければならない。
原因
複数の AUTO_INCREMENT 列を定義した、または AUTO_INCREMENT 列をどのキー (インデックス) にも含めなかった。CREATE TABLE または ALTER TABLE の実行時に発生する。
対処方法
AUTO_INCREMENT 列は 1 つに限定し、キーの一部にする: CREATE TABLE t (id INT AUTO_INCREMENT PRIMARY KEY, ...); 既存のテーブルを修正するには、先に列をキーに追加する: ALTER TABLE t ADD PRIMARY KEY (id); その後 AUTO_INCREMENT を定義する。複数の自動採番列が必要な場合は設計を見直す。MySQL はこれをサポートしない。
同じデータベースの他の項目
- 1615Prepared statement needs to be re-prepared(プリペアド文の再準備が必要)
- 1553Cannot drop index needed in a foreign key constraint(外部キー制約で必要なインデックスは削除できない)
- 3948Loading local data is disabled; this must be enabled on both the client and server sides(ローカルデータの読込みは無効。クライアントとサーバーの両側で有効化が必要)
- 1055Expression not in GROUP BY (only_full_group_by)(GROUP BY にない式)
- 1267Illegal mix of collations(照合順序の不正な混在)
- 1030Got error N from storage engine(ストレージエンジンからエラー N を受け取った)
- 1197Multi-statement transaction required more than 'max_binlog_cache_size'(複数文トランザクションが 'max_binlog_cache_size' を超える領域を必要とした)