列制約は、単一の列に対して付与する制約、
表制約は、複数の列をグループにしたものに対して付与する制約です。
以下の表(テーブルのサンプル参照)があったとき、
table1
はid
だけで主キーを構成できるデータ構成になっていたとします。その場合は、単独の列にprimary key
を指定して列制約を付与しています。形式としては表制約としてprimary key(id)
のように書くことも可能です。
それに対して、table2
はid1
だけでは主キーを構成することができず、id1
とid2
を合わせて主キーを構成する必要があるデータ構成になっていたとします。id1
とid2
を合わせて一意になるような場合です。
この場合は、表制約としてprimary key(id1, id2)
を指定します。列制約では指定できません。
逆に、not null
制約は列制約でしか指定できません。(裏を取っていませんがおそらくほとんどのDBMSでそうなっていると思います。)
lang
1create table table1 (
2 id bigint primary key,
3 name varchar(256),
4 age smallint
5);
6
7create table table2 (
8 id1 bigint,
9 id2 bigint,
10 name varchar(256),
11 age smallint,
12 primary key(id1, id2)
13)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。