Можете да създадете съхранена процедура, която да вмъкнете в тази таблица.
DELIMITER $$
CREATE PROCEDURE insert_distance(IN p_town1 varchar(50), IN p_town2 varchar(50), IN p_distance int)
BEGIN
INSERT INTO distance(town1, town2, distance)
SELECT LEAST(p_town1, p_town2), GREATEST(p_town1, p_town2), p_distance;
END $$
DELIMITER ;
Използвайки само тази процедура за вмъкване, се уверявате, че е изведена грешка, когато записът вече съществува. И не вмъквате градовете случайно в грешен ред.