バージョンが変わっただけなのにsyntaxエラーってそんなバカな…
先日サーバを移転したのですが これまで正常に動いていたWebアプリの SQLのINSERT文がsyntaxエラーを起こすようになりました。MariaDB [test]> insert into rank(num, name) values(1, '阪神');
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
'rank(num, name) values(1, '阪神')' at line 1
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
'rank(num, name) values(1, '阪神')' at line 1
対処法1.テーブル名とカッコの間にスペースを挟む
テーブル名「rank」の後に半角スペースを挟みます。 これなら予約語であってもテーブル名として認識されるようです。MariaDB [test]> insert into rank (num, name) values(2, '巨人');
Query OK, 1 row affected (0.002 sec)
Query OK, 1 row affected (0.002 sec)
対処法2.テーブル名をバッククオートで囲む
個人的に読みづらくなるのであまり好きではないのですが バッククオートで囲んでもテーブル名として認識されるようです。MariaDB [test]> insert into `rank`(num, name) values(3, '広島');
Query OK, 1 row affected (0.002 sec)
Query OK, 1 row affected (0.002 sec)

