0

ID、建物名、部屋名の 3 つのフィールドを含むテーブルが必要な状況があります。ID は単なる自動インクリメントであり、Building は NULL ではありません。Room は NULL でもかまいませんが、Building と Room の組み合わせが Unique になるように調整したいと思います。これは可能ですか?どうすれば設定できますか?

ありがとう、ジェームズ

4

1 に答える 1

2

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|
于 2012-11-02T10:21:09.940 に答える