Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Erlauben Sie keinen umgekehrten zusammengesetzten Primärschlüssel in MySQL

Sie könnten eine gespeicherte Prozedur erstellen, um sie in diese Tabelle einzufügen.

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 ;

Allein durch diese Prozedur zum Einfügen stellen Sie sicher, dass ein Fehler geworfen wird, wenn der Eintrag bereits existiert. Und Sie fügen die Städte nicht versehentlich in der falschen Reihenfolge ein.