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

时间:2012-09-20 03:09:13

标签: mysql self-referencing-table

这是一个非常基本的表格来说明我的问题。

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

谢谢你, 安德鲁

1 个答案:

答案 0 :(得分:1)

要执行此操作,您需要CHECK约束。但是,MySQL尚未实现CHECK约束,因此您可以使用触发器。

相关