仕様と根拠
判定の根拠
PostgreSQL のドキュメント付録 C は、キーワードを予約語と非予約語などに分けています。「予約語」と「予約語(関数名・型名には使える)」は、引用符なしでは列名や表名にできません。非予約語と、表にない語は引用符なしで列名にできます。このツールは前の 2 種類の語に当たる列名を検出します。
引用符と大文字小文字
二重引用符で囲んだ名前は予約語ではなく、予約語と同じ綴りでも使えます。ただし大文字小文字を区別し、引用符なしの name は小文字の name を指します(4.1.1)。引用符なしの名前は小文字に畳まれるため、Select も select と同じ予約語として扱います。
読み取る範囲
コメント(-- と /* */)・単一引用符の文字列・ドル引用符の文字列・二重引用符つきの名前は、1 つのまとまりとして読み飛ばします。CREATE TABLE の括弧の中をカンマで分け、PRIMARY KEY・UNIQUE・CHECK・FOREIGN KEY などの表の制約を除いた各項目の先頭を列名とします。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| PostgreSQL ドキュメント 付録 C SQL キーワード | 2026年10月28日 | キーワード表の分類(PostgreSQL License)。予約語・予約語(関数名・型名には使える)は列名にできない |
| PostgreSQL ドキュメント 4.1 字句構造 | 2026年10月28日 | 4.1.1 識別子(引用符つき・小文字への畳み込み・63 バイト)・4.1.2.1 文字列定数 |
| PostgreSQL License | 2026年10月28日 | ドキュメントの表を出典を示して使用 |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 完全な 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 の中身(表名・列名)に機密情報が含まれる場合も、入力はブラウザの外に出ません。結果をコピーして共有する際の取り扱いにはご注意ください。