本文へ移動
Develop Tools
← 使い方ガイドへ戻る

SQL予約語をDB別に検索して識別子の衝突を確認する方法

テーブル名やカラム名がDBによって構文エラーになる場合は、その単語が対象DBで予約語か、引用符で回避できるか、将来の移行でも安全な名前かを確認します。

SQLキーワードをDB別に検索し、予約状態と安全な識別子の引用例を確認する流れ
SQLキーワードをDB別に検索し、予約状態と安全な識別子の引用例を確認する流れ

このガイドが役立つ場面

SQL予約語一覧、Oracle・PostgreSQL・MySQL・SQL Server・SQLiteの予約語比較、テーブル名やカラム名にORDER・USER・KEYなどを使えるか調べたい利用者向けです。

  • CREATE TABLEやSELECTで識別子付近に構文エラーが出る原因を調べる
  • DB移行前に既存のテーブル名・カラム名が移行先の予約語と衝突しないか確認する
  • DDLレビューで新しい識別子の命名と引用方法を確認する
  • ORMが生成したSQLとDB固有キーワードの衝突を切り分ける

DBごとに予約語が異なる理由

  • SQL標準の予約語に加えて各DBが独自の構文とキーワードを持つ
  • 同じ単語でも予約語、文脈依存、非予約キーワードなど扱いが異なる
  • DBのバージョンやSQLモードによって予約状態が変わる場合がある
  • Oracle・PostgreSQL・SQLiteはダブルクォート、MySQLは主にバッククォート、SQL Serverは角括弧など引用方法も異なる

予約語と識別子を確認する手順

  1. 対象のデータベースを選び、使いたい単語を検索します。
  2. 予約状態、用途、意味を確認し、別DBの状態とも比較します。
  3. 識別子チェックへテーブル名やカラム名を入力し、安全な引用例を確認します。
  4. 新規設計なら予約語を避けた分かりやすい名前へ変更します。
  5. 既存資産で変更できない場合は、利用中バージョンの公式資料と実機で引用方法を確認します。

移植性と将来のバージョンアップへの注意

引用符を使えば作成できる識別子でも、SQLのたびに引用が必要になり、ORM、移行ツール、別DBとの互換性で問題になることがあります。予約語と同じ名前を新規採用しない方が保守しやすくなります。

一覧は確認の入口です。予約語はバージョンや設定で変わるため、最終判断では実際に利用するDBバージョンの公式資料と検証環境を確認してください。

具体例:orderというカラム名をDB移行前に確認する

orderは並べ替えを表すORDER BYで使われるため、DBによって識別子としてそのまま書くと構文エラーになります。まず移行元と移行先の予約状態を並べて確認します。

既存カラムを変更できない場合はDBに合う引用符を使いますが、新規設計ではorder_numberやsort_orderなど用途が分かる別名を検討します。

  1. 一覧でorderを検索し、対象DBの予約状態を確認します。
  2. DB間比較で移行元と移行先の扱いを並べます。
  3. 識別子チェックで引用例を確認し、実際のDDLとSELECTを検証環境で試します。
  4. 変更可能なら用途を表す非予約語の名前へ移行します。

識別子を変更する場合は、SQLだけでなくORMのマッピング、ビュー、ストアドプロシージャ、帳票、外部連携も検索してください。

よくある質問

引用符で囲めば予約語を識別子に使えますか?
多くのDBでは使えますが、引用符の種類、大文字・小文字の扱い、SQLモードが異なります。移植性と保守性を考えると、新規設計では予約語を避ける方が安全です。
一覧にない単語なら必ず安全ですか?
保証はできません。DBのバージョン、拡張機能、文脈依存キーワード、将来の追加予約語があるため、公式資料と実際のDBでも確認してください。

ブラウザで試す

入力内容はブラウザ内で処理されます。元データを残したうえで、結果を確認してから保存・共有してください。

SQL予約語・キーワード一覧を開く