1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MySQLの予約語に注意!

Posted at

MySQLの予約語に注意!

1,はじめに

最近大学の部活の活動でnodejs, MySQLでモバイルアプリ向けのAPIサーバーのバックエンドを担当したのですが、その中のデータベース書き換え処理の実装で個人的にはハマりポイントとなったMySQLの予約語をカラム名で使用するとエラーが吐かれることについて書きたいと思います。

2,問題

MySQLにも予約語というものがあり、予約語はその環境上で特別な扱いをされる言葉であり、私たちはこの予約語を利用することは基本的にできません。私は「key」という名前のカラムを作ってしまったのですが、それがエラーの原因でした。カラム名など予約語とぶるとつぎのようなエラーが出ます。

ERROR 1064 (42000): You have an error in your SQL syntax ...

重要なのは、予約語とかぶる不正なカラム名でもテーブルを作成できてしまうが、そのテーブルにINSERTなどの操作をしようとするときにエラーが吐かれるということです。テーブル自体はできてしまっているため自分の作ったテーブルのカラム名が悪いなどとは思いもよりませんでした。以下に個人的に気を付けたほうが良いと思うMySQLの予約語を載せておきます。

  • CODE
  • KEY
  • KEYS
  • MATCH
  • OPTION
  • RELEASE

MySQLの公式ドキュメントにも予約語の一覧があるので興味のある方はそちらを参照してみてください。

3,おわりに

今回のような事態に陥らないために予約語になりそうな言葉の使用を避けたり、どうしても予約語になりそうな言葉を使いたいのであれば、2語以上からなるカラム名などでカラム名を登録することが大切だと感じました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?