MySQLでコマンドは合っているはずなのにデータベース作成ができないと思ったら予約語だった
使用環境
- windows10
- XAMPP 7.3.18 (MariaDB 10.4.11)
背景
CREATE DATABASE condition;
でconditionというデータベースを作成しようとしたら、コマンドは合っているはずなのにエラーが出て作成できない。
エラー内容
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 'condition' at line 1
構文エラー?何度コマンドを見直してもコマンド自体は合っている。
原因
今回データベース名にしようとしていたconditionは予約語だった!
予約語は盲点だった...
MySQL5.6リファレンスマニュアル
予約語(reserved word)
予約語とは、プログラミング言語などの人工言語の仕様に定められている、開発者が付ける識別名として利用できない文字列のこと。予約語に挙げられた単語やフレーズは変数名や関数名などに使用することはできない。
IT用語辞典
ちなみにMySQLとMariaDBのバージョンの互換性は以下
MySQLバージョン | MariaDBバージョン |
---|---|
5.1 | 5.1, 5.2, 5.3 |
5.5 | 5.5, 10.0 |
5.6 | 10.0, 10.1, 10.2, 10.3, 10.4 |
5.7 | 10.2, 10.3, 10.4 |
対処方法
データベース名を予約語以外にすることで解決。