列ごとの NULL 許可の一覧
CREATE TABLE の列ごとに、NULL が入るかを根拠つきで一覧にする。
CREATE TABLE 文を貼り付けると、列ごとに NULL を許可するか不可かを一覧にします。既定は許可で、NOT NULL・PRIMARY KEY(列でも表の制約でも)・IDENTITY・serial が不可になる、という規則を根拠つきで示します。入力はブラウザの外へ送信しません。
CREATE TABLE を貼り付けて NULL 許可を一覧にする
入力した内容は送信されません。貼り付けた文字や選んだファイルは、お使いのブラウザの中だけで処理します。本サイトのサーバーや第三者へ送信・保存しません(通信を禁止する設定でページを配信しています)。
結果
エラー 0 件・警告 0 件・情報 0 件
指摘(エラー・警告・情報)
指摘はありません。
| 表の数 | 1 個 |
|---|---|
| 列の数 | 3 列 |
| NULL 許可の列 | 1 列 |
| NULL 不可の列 | 2 列 |
NULL 許可の一覧
| 表 | 列 | 型 | NULL の扱い | 判定の根拠 |
|---|---|---|---|---|
| t | id | integer | NULL 不可 | PRIMARY KEY は UNIQUE と NOT NULL の組み合わせと同じ(CREATE TABLE 文書) |
| t | name | text | NULL 不可 | NOT NULL を指定(CREATE TABLE 文書) |
| t | memo | text | NULL 許可 | 制約なし(既定で NULL を許可) |
初期表示は入力例「主キー・NOT NULL・何も付けない列」の結果です。入力を変えるとその場で処理し直します。判定の根拠は仕様と根拠にまとめています。
ご利用にあたって
- 結果は字句の読み取りにもとづく確認で、実際のデータベースでの解釈を保証するものではありません。
- ドキュメントは PostgreSQL License で公開されています。このサイトはその内容を要約して参照しており、転載はしていません。
使い方
- 調べたい CREATE TABLE 文を入力欄に貼り付けます。
- 表の「NULL の扱い」と「判定の根拠」を見て、意図どおりの列が NULL 不可になっているかを確かめます。
- 「表示する列」で NULL 許可の列だけに絞ると、抜けやすい列の見直しに使えます。
入力例と結果
代表的な入力・境界の入力・壊れた入力の例です。例ごとに入力・出力・指摘と、その結果になる理由(検算)を載せています。
| 入力例 | 結果 |
|---|---|
| 主キー・NOT NULL・何も付けない列 | エラー 0 件・警告 0 件・情報 0 件 |
| 表の制約で書いた複合主キー | エラー 0 件・警告 0 件・情報 0 件 |
| IDENTITY と serial の暗黙の NOT NULL | エラー 0 件・警告 0 件・情報 2 件 |
| DEFAULT NULL と ON DELETE SET NULL | エラー 0 件・警告 0 件・情報 1 件 |
| NOT NULL と NULL の矛盾 | エラー 0 件・警告 1 件・情報 1 件 |
このツールでできないこと(制約)
- 完全な 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 許可の判定は変わりません。
よくある質問
NULL を明示した列と、何も書かない列は違いますか?
同じです。NULL は「列が NULL を含んでよい」という既定と同じ意味で、互換性のために書けます(CREATE TABLE 文書)。表には「NULL を明示」と根拠を分けて示します。
PRIMARY KEY の列は NOT NULL と書かなくても不可ですか?
不可です。PRIMARY KEY は UNIQUE と NOT NULL の組み合わせと同じ制約を課します(CREATE TABLE 文書)。列の後ろに書いても表の制約として書いても同じです。
貼り付けた SQL はどこかに送られますか?
送られません。処理はお使いのブラウザの中だけで行い、ページは通信を禁止する設定(CSP の connect-src)で配信しています。