หากฉันมีตารางที่มีลักษณะเช่นนี้
CREATE TABLE foo (
id INT NOT NULL AUTO_INCREMENT,
aa INT NOT NULL,
bb INT NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY (aa, bb),
CONSTRAINT aa_ref FOREIGN KEY (aa) REFERENCES bar (id),
CONSTRAINT bb_ref FOREIGN KEY (bb) REFERENCES bar (id)
)
มีวิธีที่จะทำให้แน่ใจว่าaa != bb
นอกเหนือจากการใช้ตรรกะระดับแอปพลิเคชันหรือบังคับให้ทริกเกอร์ล้มเหลวก่อนที่จะแทรก?
Foo
(1,2) (2,3) (3,1)
เราควรแยกสามค่านี้อย่างไร?