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 個

列名ごとの判定

列名ごとの判定
番号表列名(入力どおり)区分引用符なしで列名にできるか
1usersid予約語ではないできる
2users"order"二重引用符つき(予約語と同じ綴り)できる(引用符つき)
3usersuser予約語できない

検算(この結果になる理由)

付録 C で USER は予約語のため、引用符なしの user はエラーです。"order" は ORDER と同じ綴りでも二重引用符つきなので使えます(4.1.1)。id は予約語ではありません。エラー 1 件と、引用符で囲んだ予約語の情報 1 件が出ます。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • この判定は PostgreSQL の予約語だけを対象にしています。複数のデータベースで使う SQL では、それぞれの製品の予約語も確認してください。
  • SQL の中身(表名・列名)に機密情報が含まれる場合も、入力はブラウザの外に出ません。結果をコピーして共有する際の取り扱いにはご注意ください。

ほかの入力例