MySQLデータベースエラー #1064 の修正方法
MySQLエラー #1064とは?
MySQLで発生する「ERROR 1064」は、SQL構文に誤りがある場合に出力される代表的なエラーです。カンマの付け忘れや余分なカンマ、タイプミスなど、些細な記述ミスによっても発生します。
ここでは、テーブル作成時に末尾に余分なカンマが残っていることでエラー #1064 が発生するケースと、その解決方法を解説します。
エラーが発生するSQLの例
以下のようなテーブルを作成しようとした場合を考えてみましょう。
mysql> create table DemoTable
(
UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName varchar(100),
UserAge int,
UserAddress varchar(200),
UserCountryName varchar(100),
isMarried boolean,
);
一見問題ないように見えますが、このクエリを実行すると次のようなエラーが出力されます。
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 10
エラーの原因
原因は、最後のカラム定義「isMarried boolean」の後に余分なカンマ(,)が付いている点です。MySQLでは、カラム定義の区切りとして使うカンマを、最後の項目の後ろに置くことはできません。そのため、閉じ括弧「)」の直前にカンマがあると構文エラーとして検出されます。
修正方法:余分なカンマを削除する
このエラーを解消するには、最後のカラム定義の末尾にあるカンマを削除するだけです。修正後の正しいクエリは以下の通りです。
mysql> create table DemoTable
(
UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName varchar(100),
UserAge int,
UserAddress varchar(200),
UserCountryName varchar(100),
isMarried boolean
);
Query OK, 0 rows affected (1.04 sec)
実行結果に「Query OK」と表示されれば、テーブルは正常に作成されています。
まとめ
MySQLエラー #1064 は構文ミスによって発生します。特に多いのが、カラム定義の最後にカンマを付けたままにしてしまうケースです。エラーメッセージには問題のある箇所(near以降の部分)が表示されるので、まずはそこを確認し、カンマの過不足やタイプミスがないかを見直しましょう。エディタの構文チェック機能やフォーマッタを活用すると、こうした単純ミスを事前に防ぐことができます。
-
0x0000C1F5ブルースクリーンエラーの原因と修正方法を徹底解説【Windows Vista対応】
0x0000C1F5のブルースクリーンエラーは、Windows Vista搭載PCの起動時に表示されることがある深刻なエラーで、主な原因はハードウェアドライバー同士の競合です。しかし、このエラーが発生しても安心してください。本記事で紹介する手順に従えば、システムに潜む問題を解消できる可能性は十分にあります。 0x0000C1F5ブルースクリーンエラーの原因 0x0000C1F5エラーは、共通ログファイルシステム(Common Log File System)のドライバー「Clfs.sys」が、破損した$TxfLogファイルを正しく修復できないことで発生します。ストップエラーのメッセージが表示
-
MULTIPLE_IRP_COMPLETE_REQUESTSエラー(0x00000044)の原因と解決方法
MULTIPLE_IRP_COMPLETE_REQUESTSエラーの修正方法:バグチェックコード0x00000044を伴うMULTIPLE_IRP_COMPLETE_REQUESTSエラーとブルースクリーンオブデス(BSOD)が発生している場合、これはドライバーがすでに完了しているIRP(I/O要求パケット)の完了を再度要求しようとしたことが原因です。この競合によってエラーメッセージが表示されます。つまり、本質的にはドライバーの問題であり、あるドライバーが自分自身のパケットを二重に完了させようとしている状態です。主な問題は、2つの異なるデバイスドライバーがそれぞれパケットの所有権を持っていると