2

データベースに type と name の 2 つの列があります。名前が各タイプ内で一意であるという一意の制約を適用したいと考えています。

Type   Name
 A     ABC
 R     ABC
 B     ABC

許可する必要がありますが、

Type  Name
 A    ABC
 A    ABC

許されるべきではありません

名前が各タイプ内で一意であるこの制約を適用するにはどうすればよいですか?

ありがとう、

4

2 に答える 2

6

このような複数列の一意の制約を作成できます

ALTER TABLE MyTable ADD UNIQUE (Type, Name)

これにより、説明したルールが適用されます。

于 2012-07-09T05:50:40.697 に答える
0

テーブルの作成中にできること

CREATE TABLE YourTable(
  Name VARCHAR(255) NOT NULL,
  Type   VARCHAR(255) NOT NULL,
  PRIMARY KEY (Type, Name)
)

または、テーブルを変更できます

ALTER TABLE YourTable ADD PRIMARY KEY (Type, Name)

その後、次の4つを実行しました..(最後のものは失敗しました)

insert into YourTable values('AB','ABD')
insert into YourTable values('AA','ABD')
insert into YourTable values('AA','ABC')
insert into YourTable values('AA','ABD')

ありがとう、ジガー

于 2012-07-09T05:53:16.373 に答える