SQL実行時にエラーが発生した場合に表示されるエラーコードごとにメッセージの内容と対処方法について紹介していきます。
エラーコード一覧
SQLの構文を実行した際にエラーが発生することがあります。その際に表示されるエラーコードと呼ばれる4桁の数字には意味があり、エラーを解消する際にとても役に立ちます。
エラーコードごとにエラー内容と対処方法を簡単にまとめていきます。
エラーコード:1046
エラーメッセージ
ERROR 1046 (3D000): No database selected
エラー内容
使用するデータベースを選択していない。
主な対処方法
使用するデータベースを選択する
use データベース名;
エラーコード:1050
エラーメッセージ
ERROR 1050 (42S01): Table '〇〇〇' already exists
エラー内容
該当(〇〇〇)のテーブルがすでに存在している
主な対処方法
テーブル構造を確認して作成しようとしているテーブルと重複している名前がないかを確認する
show tables;
エラーコード:1054
エラーメッセージ
ERROR 1054 (42S22): Unknown column '名前' in 'field list'
エラー内容
(’’)シングルクォーテーション内のカラム名が指定したテーブルに存在しないことを意味している。
主な対処方法
テーブルに指定のカラムが存在するか、またはカラム名に誤記がないかを確認する。
select * from テーブル名;
各種プログラミング言語でカラム名を変数や配列などで取得している場合は、SQL実行前に格納している値に正しい値が設定されているかを確認しましょう。
例
- PHP var_dump(変数または配列);
- Laravel dd(変数または配列);
エラーコード:1064
エラーメッセージ
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'エラーの原因' at line 1
エラー内容
1行目のSQLの構文に誤りがある。”(シングルクォーテーション)の中にはエラーの原因となる文言が記載されていることが多い。
主な対処方法
- スペルミスの確認
- 全角文字が含まれていないか
エラーコード:1075
エラーメッセージ
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(主キー)も同時に指定する必要がある
主な対処方法
- オートインクリメントを使用しない
- オートインクリメントを利用するカラムに主キーを設定する
エラーコード:1241
エラーメッセージ
ERROR 1241 (21000): Operand should contain 1 column(s)
エラー内容
オペランドは一つのカラムを指定する必要がある
ケース
サブクエリを利用したupdate文を利用した際に発生しました。
主な対処方法
サブクエリを実行する際の構文に誤りがある可能性があります。
また、サブクエリ利用時などのスペルミスなどの場合にも表示されることがあります。
サブクエリ基本構文
select カラム名 from テーブル名
where カラム名 演算子 (
select カラム名 from テーブル名 where 条件
);
赤字で示したカラム名の未指定などもチェックする必要があります。