Se eu tiver uma tabela que se parece com isso
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)
)
Existe uma maneira de garantir que, aa != bb
além de usar a lógica no nível do aplicativo ou forçar um gatilho a falhar em BEFORE INSERT?