表の制約で書いた複合主キー

列定義では何も付けず、表の制約 PRIMARY KEY (a, b) で 2 列を主キーにした例です。列の後ろに書かない主キーでも不可になることを確かめます。

入力

SQL

CREATE TABLE t (a int, b int, c int, PRIMARY KEY (a, b))

表示する列

すべての列

結果

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

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

指摘はありません。

表の数1 個
列の数3 列
NULL 許可の列1 列
NULL 不可の列2 列

NULL 許可の一覧

NULL 許可の一覧
表列型NULL の扱い判定の根拠
taintNULL 不可PRIMARY KEY は UNIQUE と NOT NULL の組み合わせと同じ(CREATE TABLE 文書)
tbintNULL 不可PRIMARY KEY は UNIQUE と NOT NULL の組み合わせと同じ(CREATE TABLE 文書)
tcintNULL 許可制約なし(既定で NULL を許可)

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

PRIMARY KEY (a, b) の表の制約は、列 a と b のそれぞれに NOT NULL を課します(CREATE TABLE 文書)。c は何も付いていないので許可です。不可 2 列・許可 1 列になります。

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

このツールの制約

ご利用にあたって

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

ほかの入力例