0

「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 つが重複している場合、残りは一意でなければなりません

4

0 に答える 0