仕様と根拠
NULL 許可の判定規則
列は既定で NULL を許可します。NOT NULL を付けた列、PRIMARY KEY の列(UNIQUE と NOT NULL の組み合わせと同じ)、GENERATED ... AS IDENTITY の列は NULL 不可です(CREATE TABLE 文書)。表の制約 PRIMARY KEY (a, b) に入る列も不可になります。
serial 型
serial 系の型は、既定値が連番の NOT NULL 付き整数列と同等です(8.1.4 節)。そのため serial の列も NULL 不可として扱います。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| PostgreSQL 18 ドキュメント CREATE TABLE | 2026年10月28日 | NULL / NOT NULL(既定は許可)・PRIMARY KEY・GENERATED AS IDENTITY(暗黙の NOT NULL) |
| PostgreSQL 18 ドキュメント 8.1 数値型 | 2026年10月28日 | 8.1.4 連番型(serial は NOT NULL 付き) |
| PostgreSQL 18 ドキュメント 4.1 字句構造 | 2026年10月28日 | 4.1.1(識別子と引用符)・4.1.2.1(文字列)・4.1.5(コメント) |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 完全な SQL の構文解析はしません。CHECK 制約の中身や DEFAULT 式の意味は読まず、NULL を禁じる CHECK (x IS NOT NULL) は NULL 許可のままと表示します。
- CREATE TABLE ... AS・PARTITION OF・LIKE で取り込まれる列は判定不能です。
- ALTER TABLE で後から加えた NOT NULL や PRIMARY KEY は読みません。CREATE TABLE の文だけが対象です。
- DEFAULT の式は読み飛ばします。DEFAULT NULL でも NULL 許可の判定は変わりません。
ご利用にあたって
- 結果は字句の読み取りにもとづく確認で、実際のデータベースでの解釈を保証するものではありません。
- ドキュメントは PostgreSQL License で公開されています。このサイトはその内容を要約して参照しており、転載はしていません。