3

これは私の質問を説明するための非常に基本的な表です。

CREATE TABLE Customer (
CustID         INT,
CustLastName   VARCHAR (20),
ReferralID     INT,
ADD CONSTRAINT PRIMARY KEY (CustID),
ADD CONSTRAINT FOREIGN KEY (ReferralID) REFERENCES Customer(CustID)
);

私の現在のコードでは、CustID を持っている以前の顧客のみが ReferralID 列に存在できるようになっています (つまり、顧客にストアについて伝えました)。ただし、同じ行で CustID が ReferralID と等しくなるのを止めるものは何もありません。これは明らかに不可能です。 . 顧客は店について自分自身を言うことができません。

基本的に、CustID と ReferralID が同じ行に同じ値を持たないようにするにはどうすればよいですか?

ありがとう、アンドリュー

4

1 に答える 1

1

これを行うには、CHECK 制約が必要です。ただし、MySQL はまだ CHECK 制約を実装していないため、代わりにトリガーを使用できます。

関連している

于 2012-09-20T03:15:00.287 に答える