Buongiorno,
sto scrivendo una stored procedure.
Posto parte del codice:
WHILE i < JSON_LENGTH(`@JSON`) DO
SELECT TRIM(JSON_VALUE(`@JSON`, CONCAT('$[',i,'].ID'))) DATA INTO @ID;
SELECT ID DATA INTO @_CHECK
FROM MIA_TABELLA1
WHERE ID = @ID;
IF @_CHECK IS NULL THEN
INSERT INTO MIA_TABELLA2
VALUES (@ID, 'ASDF');
END IF;
SELECT i + 1 DATA INTO i;
END WHILE;
IF _rollback THEN
ROLLBACK;
SELECT 'false' AS STATO;
ELSE
COMMIT;
SELECT 'true' AS STATO;
END IF;
Se non eseguo questa query: "SELECT ID DATA INTO @_CHECK FROM MIA_TABELLA1 WHERE ID = @ID;" ed elimino l'IF funziona se inserisco la select con l'IF esegue sempre il ROOLBACK.
Non riesco a capire il motivo. Nonostante ho fatto altre stored procedure con la stessa sintassi e mi funzionano.
Grazie buona giornata
Cali