簡體   English   中英

如何限制MySQL中的自引用表,這樣一行不能引用自身?

[英]How to limit a self-referencing table in MySQL so a row can't reference itself?

這是一個非常基本的表來說明我的問題。

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在同一行中具有相同的值?

謝謝你,安德魯

為此,您需要CHECK約束。 但是,MySQL尚未實現CHECK約束,因此您可以使用觸發器。

有關

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM