user 列を持つ CREATE TABLE
id・"order"・user の 3 列を持つ表の定義で、引用符つきの "order" は使え、引用符なしの user だけが予約語としてエラーになる代表例です。
入力
CREATE TABLE 文または列名の一覧
CREATE TABLE users ( id integer PRIMARY KEY, "order" integer, user text );
入力の種類
CREATE TABLE 文(列の名前を読み取る)
結果
エラー 1 件・警告 0 件・情報 1 件
指摘(エラー・警告・情報)
- エラー 表 users・4 行目 「user」は PostgreSQL の予約語で、引用符なしでは列名にできません。"user" のように二重引用符で囲むか、別の名前に変えてください(付録 C)。囲んだ場合は、その列を使う SQL でも毎回同じ引用符が必要です。
- 情報 全体 二重引用符で囲んだ予約語と同じ綴りの名前が 1 個あります。引用符つきの名前は予約語ではないため使えます(4.1.1)が、参照するたびに引用符が必要です。
| 読んだ表 | 1 個 |
|---|---|
| 検査した名前 | 3 個 |
| 引用符なしで使えない名前 | 1 個 |
列名ごとの判定
| 番号 | 表 | 列名(入力どおり) | 区分 | 引用符なしで列名にできるか |
|---|---|---|---|---|
| 1 | users | id | 予約語ではない | できる |
| 2 | users | "order" | 二重引用符つき(予約語と同じ綴り) | できる(引用符つき) |
| 3 | users | user | 予約語 | できない |
検算(この結果になる理由)
付録 C で USER は予約語のため、引用符なしの user はエラーです。"order" は ORDER と同じ綴りでも二重引用符つきなので使えます(4.1.1)。id は予約語ではありません。エラー 1 件と、引用符で囲んだ予約語の情報 1 件が出ます。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 完全な SQL の構文解析はしません。CREATE TABLE の ( ) の中の列の並びだけを読み、CREATE TABLE AS SELECT や PARTITION OF などは判定不能と示します。
- ALTER TABLE ADD COLUMN や SELECT 文の中の別名は読みません。調べたい名前は「列名の一覧」で貼り付けてください。
- 判定の基準は PostgreSQL のドキュメント付録 C のキーワード表です。MySQL・SQL Server・Oracle など別の製品の予約語は判定しません。
- バージョンによって予約語は増減します。このツールの一覧はドキュメント(2026-10-28 に確認)にもとづくため、古いバージョンでは結果が異なる場合があります。
ご利用にあたって
- この判定は PostgreSQL の予約語だけを対象にしています。複数のデータベースで使う SQL では、それぞれの製品の予約語も確認してください。
- SQL の中身(表名・列名)に機密情報が含まれる場合も、入力はブラウザの外に出ません。結果をコピーして共有する際の取り扱いにはご注意ください。