Ciao!
ho una tabella di test con un campo auto_increment.
ho creato una procedure per capire come funzionano le eccezioni:
DELIMITER //
DROP PROCEDURE IF EXISTS add_persona //
CREATE PROCEDURE add_persona(IN email VARCHAR(50), IN nome VARCHAR(50), IN cognome VARCHAR(50))
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE, @errno = MYSQL_ERRNO, @text = MESSAGE_TEXT;
SELECT @errno, @sqlstate, @text;
END;
INSERT INTO persone VALUES(NULL, email, nome, cognome);
SELECT LAST_INSERT_ID() AS last_id;
END
funziona bene, solo che ho notato che il valore auto_increment aumenta anche quando la SP va in eccezione.
è un comportamento "normale" o sbaglio io nella SP?
e in caso si può evitare, o non ci si può fare nulla?