Mysql
 sql >> Database >  >> RDS >> Mysql

Non consentire la chiave primaria composita invertita in MySQL

Potresti creare una procedura memorizzata da inserire in questa tabella.

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 ;

Usando solo questa procedura per inserire ti assicuri che venga generato un errore, quando la voce esiste già. E non inserisci le città per sbaglio nell'ordine sbagliato.