データベースに type と name の 2 つの列があります。名前が各タイプ内で一意であるという一意の制約を適用したいと考えています。
Type Name
A ABC
R ABC
B ABC
許可する必要がありますが、
Type Name
A ABC
A ABC
許されるべきではありません
名前が各タイプ内で一意であるこの制約を適用するにはどうすればよいですか?
ありがとう、
データベースに type と name の 2 つの列があります。名前が各タイプ内で一意であるという一意の制約を適用したいと考えています。
Type Name
A ABC
R ABC
B ABC
許可する必要がありますが、
Type Name
A ABC
A ABC
許されるべきではありません
名前が各タイプ内で一意であるこの制約を適用するにはどうすればよいですか?
ありがとう、
このような複数列の一意の制約を作成できます
ALTER TABLE MyTable ADD UNIQUE (Type, Name)
これにより、説明したルールが適用されます。
テーブルの作成中にできること
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')
ありがとう、ジガー