繁体   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