O que quero alcançar é o seguinte:
CREATE TABLE foo (
bar1 int,
bar2 int,
type varchar(16),
FOREIGN KEY bar1 REFERENCES bar(id),
FOREIGN KEY bar2 REFERENCES bar(id)
);
ALTER TABLE foo ADD CONSTRAINT unique_link (bar1, bar2);
INSERT INTO foo (bar1, bar2, type) VALUES (1, 2, 'simple link')
--next line should fail, as {2, 1} as a set is already present, just in a different order
INSERT INTO foo (bar1, bar2, type) VALUES (2, 1, 'simple link')
É possível de alguma forma? Talvez com alguns gatilhos, ou alguns hashes calculados automaticamente das colunas bar*? Obrigado pela ajuda!