1050: Table already exists(テーブルがすでに存在する)
MySQL意味
作成しようとしたテーブルがすでに存在する。同じ名前のテーブルがあるため CREATE TABLE が失敗した。
原因
既存テーブルの再作成、スクリプトの 2 回実行、マイグレーションの再適用、別のオブジェクト (ビュー) が同じ名前を使用している。
対処方法
テーブルがない場合にのみ作成するには IF NOT EXISTS を使う: CREATE TABLE IF NOT EXISTS my_table (...); 本当に作り直したい場合は先に削除する: DROP TABLE IF EXISTS my_table; 既存のテーブルを一覧表示する: SHOW TABLES; マイグレーションを再実行しても安全 (冪等) にする。
同じデータベースの他の項目
- 1292Incorrect datetime value / truncated incorrect value(日時の値が不正 / 不正な値の切詰め)
- 1406Data too long for column(列に対してデータが長すぎる)
- 1071Specified key was too long; max key length is 767 bytes(キーが長すぎる)
- 1051Unknown table 'x'(不明なテーブル)
- 1091Can't DROP 'x'; check that column/key exists(DROP できない。列/キーの存在を確認)
- 1093You can't specify target table 'x' for update in FROM clause(FROM 句で更新対象テーブルは指定できない)
- 1305PROCEDURE does not exist(プロシージャが存在しない)