ID、建物名、部屋名の 3 つのフィールドを含むテーブルが必要な状況があります。ID は単なる自動インクリメントであり、Building は NULL ではありません。Room は NULL でもかまいませんが、Building と Room の組み合わせが Unique になるように調整したいと思います。これは可能ですか?どうすれば設定できますか?
ありがとう、ジェームズ
ID、建物名、部屋名の 3 つのフィールドを含むテーブルが必要な状況があります。ID は単なる自動インクリメントであり、Building は NULL ではありません。Room は NULL でもかまいませんが、Building と Room の組み合わせが Unique になるように調整したいと思います。これは可能ですか?どうすれば設定できますか?
ありがとう、ジェームズ
unique
制約付きのテーブルを作成します。
create table t (id integer primary key,
building text not null,
room text,
unique (building, room));
データの挿入:
insert into t (building, room) values ("B1", "R1");
insert into t (building, room) values ("B1", "R2");
insert into t (building, room) values ("B1", null);
insert into t (building, room) values ("B1", "R3");
insert into t (building, room) values ("B1", "R1");
-- Error: columns building, room are not unique
insert into t (building, room) values ("B1", null);
-- Note: This last insert does not violate the constraint!
データを表示します。
select * from t;
1|B1|R1
2|B1|R2
3|B1|
4|B1|R3
5|B1|