MySQLでINSERT文がエラーになる原因とは?VALUEとVALUESの違いを解説
MySQLでINSERT INTO文を実行した際にエラーが発生する場合、その原因の多くはVALUE()という誤った構文の使用にあります。正しくはVALUES()を使用する必要があります。
エラーの原因:VALUE() ではなく VALUES() を使う
MySQLでは、複数形の「VALUES」が正式なキーワードとして定義されています。単数形の「VALUE」を指定すると構文エラーとなるため、注意が必要です。
INSERTクエリの正しい構文は以下の通りです。
INSERT INTO テーブル名 VALUES(値1, 値2, .......N);
実際に試してみよう
1. テーブルを作成する
まず、サンプル用のテーブルを作成します。
mysql> create table DemoTable
(
StudentId int,
StudentName varchar(40),
StudentAge int
);
Query OK, 0 rows affected (0.48 sec)2. レコードを挿入する
次に、INSERTコマンドを使ってテーブルにデータを登録します。ここでは正しい構文であるVALUES()を使用しています。
mysql> INSERT INTO DemoTable VALUES(1001,'Tom',20); Query OK, 1 row affected (0.11 sec) mysql> INSERT INTO DemoTable VALUES(1002,'Mike',21); Query OK, 1 row affected (0.13 sec) mysql> INSERT INTO DemoTable VALUES(1003,'Sam',19); Query OK, 1 row affected (0.08 sec)
3. データを確認する
SELECT文を実行して、テーブル内のすべてのレコードを表示します。
mysql> select *from DemoTable;
実行すると、以下のような結果が出力されます。
+-----------+-------------+------------+ | StudentId | StudentName | StudentAge | +-----------+-------------+------------+ | 1001 | Tom | 20 | | 1002 | Mike | 21 | | 1003 | Sam | 19 | +-----------+-------------+------------+ 3 rows in set (0.00 sec)
まとめ
MySQLでINSERT文のエラーに悩まされた場合は、まずVALUE()と書いていないか確認しましょう。正しいキーワードはVALUES()です。この単純なスペルミスは初心者によくある間違いですが、構文さえ守れば簡単に解決できます。
-
Javaを使ってDATE型の値をMySQLカラムに挿入する方法【PreparedStatement活用】
はじめに JavaからMySQLのDATE型カラムに日付データを挿入したい場合、PreparedStatementを使用するのが最も安全で推奨される方法です。SQLインジェクション対策にもなり、日付型の変換もスムーズに行えます。 本記事では、Javaプログラムから現在の日付をMySQLテーブルに挿入する手順を、サンプルコード付きでわかりやすく解説します。 1. サンプルテーブルの作成 まず、DATE型のカラム「ArrivalDate」を含むテーブルを作成します。以下はMySQLでの作成例です。 mysql> create table DemoTable( PassengerId
-
JavaでMySQLデータベースにNULL値を挿入する方法
JavaからデータベースにNULL値を挿入したいケースはよくあります。その場合、PreparedStatementのsetNull()メソッドを使用します。基本的な構文は以下の通りです。ps.setNull(インデックス番号, Types.NULL);この記事では、実際にサンプルを通してNULL値の挿入手順を解説します。1. テーブルの作成まず、MySQLでテスト用のテーブルを作成します。mysql> create table DemoTable1893 ( FirstName varchar(20) ); Query OK, 0 rows affected (0