2023.06.18  

【MySQL】INSERTができない(ERROR 1064 (42000): You have an error in your SQL syntax;)

SQL    

次のテーブルを作成してINSERTを行うと、見た目の構文が間違っていないのにエラーになる。

CREATE TABLE `test` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `row_number` int unsigned NOT NULL,
   PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin;
mysql> INSERT INTO `bulk_point_accept`
    -> (id, row_number) 
    -> VALUES
    -> (1, 10);

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 'row_number) VALUES (1, 10)' 

原因

row_numberがMySQLの予約言だったのが原因。

これになかなか気づかず、普通の構文エラーかと思って特定に時間が掛かった。

なので、row_numberではなくline_numberなどに名前を変えればINSERTが通るようになる。

MySQLの予約言についてはこちらを参照。
https://dev.mysql.com/doc/refman/8.0/ja/keywords.html

コメント
現在コメントはありません。
コメントする
コメント入力

名前 (※ 必須)

メールアドレス (※ 必須 画面には表示されません)

送信