NOT NULL と NULL の矛盾

同じ列に NOT NULL と NULL の両方を書いてしまった例です。矛盾した宣言を警告で知らせ、安全側の NULL 不可として表示することを確かめます。

入力

SQL

CREATE TABLE t (a int NOT NULL NULL)

表示する列

すべての列

結果

エラー 0 件・警告 1 件・情報 1 件

指摘(エラー・警告・情報)

  • 警告 1 行目 t.a に NOT NULL と NULL の両方が書かれています。矛盾した宣言なので、どちらか一方に直してください。実行するとエラーになる可能性があります。
  • 情報 1 行目 t には PRIMARY KEY がありません。主キーのない表では、NULL を許す列だけで構成されることもあり、行の特定が難しくなります。
表の数1 個
列の数1 列
NULL 許可の列0 列
NULL 不可の列1 列

NULL 許可の一覧

NULL 許可の一覧
表列型NULL の扱い判定の根拠
taintNULL 不可NOT NULL を指定(CREATE TABLE 文書)

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

NOT NULL は NULL を禁じ、NULL は許す宣言なので両立しません(CREATE TABLE 文書の両制約の説明)。矛盾の警告が 1 件出て、一覧では NOT NULL を優先して不可と表示します。

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

このツールの制約

ご利用にあたって

  • 結果は字句の読み取りにもとづく確認で、実際のデータベースでの解釈を保証するものではありません。
  • ドキュメントは PostgreSQL License で公開されています。このサイトはその内容を要約して参照しており、転載はしていません。

ほかの入力例