Estou usando o MariaDB 10.24.8 no Linux e estou encontrando este erro de sintaxe que tem me deixado perplexo nas últimas horas:
ERROR 1064 (42000) at line 7: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 6
com esta consulta SQL para criar um procedimento armazenado:
USE getranke;
DROP PROCEDURE IF EXISTS insert_scan;
-- param scan INT: Barcode Value
-- out-param result INT: 0 = registered; 1 = DB is in inventory mode
CREATE PROCEDURE insert_scan(
IN scan INT,
OUT result INT
)
BEGIN
DECLARE stateName TEXT;
SELECT Name INTO stateName
FROM StateIDs
JOIN SystemState
ON StateIDs.ID = SystemState.FK_StateIDs_ID
WHERE SystemState.ID = 1;
IF stateName = 'Inventory' THEN
SET result = 1;
ELSE
SELECT scan;
INSERT INTO Scans (FK_Drinks_barcode, when_datetime)
VALUES (scan, NOW());
SET result = 0;
END IF;
END;
O que me irritou especialmente é que o Rust-Rover consegue executar essa consulta sem problemas, mas se eu executá-lo usando o console mysql/mariadb, ocorrerá esse erro. Também ocorre com outros front-ends como phpmyadmin.
Se precisar de mais informações, ficarei feliz em fornecê-las. Obrigado.