Эй, я сейчас учусь на экзамене. У меня проблема с процедурами и функциями.
CREATE PROCEDURE testProc()
BEGIN
DECLARE testNR INT;
END
Это мой testCode, но каждая процедура и каждая функция дают мне эту ошибку:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
SQLState: 42000
ErrorCode: 1064
Error occurred in:
CREATE PROCEDURE testProc()
BEGIN
DECLARE testNR INT
Есть ли что-то, что я делаю неправильно или у меня проблемы с моей IDE SQuirrel?
При создании процедуры вам необходимо изменить разделители; в противном случае ;
рассматривается как конец инструкции CREATE PROCEDURE
.
Как поясняется в документах, вам необходимо
используйте [] команду
delimiter
клиента mysql для изменения разделителя операторов;
до//
пока процедура определена. Это позволяет; разделитель, используемый в теле процедуры, который должен быть передан на сервер, а не интерпретируется самой mysql. См. Раздел 23.1 "Определение сохраненных программ".
Это не должно быть //
; другой общий выбор - $$
.
В вашем примере это может выглядеть так:
DELIMITER $$
CREATE PROCEDURE testProc()
BEGIN
DECLARE testNR INT;
END
$$
DELIMITER ;
DELIMITER
до и после объявления процедуры.