Попробуйте настроить разделитель [;;], как показано ниже.Если это не работает, попробуйте разделитель [$$].
DROP PROCEDURE IF EXISTS addReservations;
DELIMITER ;;
CREATE PROCEDURE addReservations()
BEGIN
DECLARE v1 INT DEFAULT 0;
WHILE v1 < 5 DO
INSERT INTO `Reservations` (`Timeslot_idTimeslot`, `Exam_type_idExam_type`, `Temp_Student_idStudent`, `Lock_expiration_date`)
VALUES (1, 1, 1, '2019-07-02 00:00:00');
SET v1 = v1 + 1;
END WHILE;
END;;
DELIMITER;
Если он все еще не работает, я предлагаю вам сократить вашу ПРОЦЕДУРУ до минимума кода, чтобы убедиться, что он на самом делеразделитель, который является основной причиной вашей проблемы, например:
DROP PROCEDURE IF EXISTS addReservations;
DELIMITER ;;
CREATE PROCEDURE addReservations()
BEGIN
SELECT * FROM ["comment: add your table name here"];
END
;;
DELIMITER ;
Далее, если вы ожидаете, что ваша хранимая процедура действительно будет выполняться, вам нужно вызвать ее, используя команду [CALL].Обратите внимание, что вызов должен быть сделан за пределами ПРОЦЕДУРЫ.Только тогда вы увидите запрос, который будет выполнен, и, следовательно, изменения будут видны в вашей базе данных.