「CREATE TABLE CHECK」ではサブクエリは許可されていないと思います(現在の値のみが許可されています)。しかし、以下のように現在の行の外側の条件についてテーブルを確認したいと思います。
擬似コード:
CREATE TABLE Persons
(
LoginName varchar(128) NOT NULL CHECK (OLNY ONE of following can be duplicate to an existing record: LoginName, LastName or FirstName. Other two may not),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255)
)
この条件を確認したい: CHECK (以下の OLNY 1 つは既存のレコードと重複する可能性があります: LoginName、LastName、または FirstName。他の 2 つは重複しない可能性があります)
どうやってするか?(ヒントだけでなく、コードを書いてください。サンクス)
サンプルデータ
既存:
- ジャニー、スミス、ジェーン、エルム通り。
- ジョニー、スミス、ジョン、エルム通り。
- アルバロ、ヒメネス、アルバロ、5th Av。
許可された挿入/更新:
- Greenhorn、Prochazka、Martin、MyStreet#1
- ジョニー、ロボット、No5、Army Str.
- ゴッドライク、スミス、No5、アーミー Str.
禁止されている:
- ジョニー、スミス、ジョン、ルート 66
- Alvaro、Roman、Alvaro、Down Str.
- Alvaro、Roman、John、Down Str.
許可されていないことを最も簡単に理解するには: 「名前」値の 1 つが重複している場合、残りは一意でなければなりません