Я пытаюсь создать очень основную хранимую процедуру в MySQL. Он должен увеличивать значение int в таблице. Я также хочу, чтобы хранимая процедура была удалена, если она уже существует. Sql внутри хранимой процедуры отлично работает по отдельности.Синтаксис хранимой процедуры MySQL
Я получаю эту ошибку:
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 'END' at line 5
я пытался:
DELIMITER $$
DROP PROCEDURE IF EXISTS sp_version_increment$$
CREATE PROCEDURE `sp_version_increment`()
BEGIN
SET @ver = (SELECT version FROM version LIMIT 1) + 1;
UPDATE version SET version = @ver
END$$
DELIMITER
DELIMITER $$
DROP PROCEDURE IF EXISTS sp_version_increment$$
CREATE PROCEDURE `sp_version_increment`()
BEGIN
SET @ver = (SELECT version FROM version LIMIT 1) + 1;
UPDATE version SET version = @ver
END
РЕШЕНИЕ:
DELIMITER $$
DROP PROCEDURE IF EXISTS sp_version_increment$$
CREATE PROCEDURE `sp_version_increment`()
BEGIN
SET @num = (SELECT number FROM version LIMIT 1) + 1;
UPDATE version SET number = @num;
END
Думаю, мне просто нужен один из них. Те, что я написал выше, где только две отдельные попытки, которые потерпели неудачу. Я попробую ваше предложение сразу –
Выполнение этого дает мне эту ошибку: # 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «DELIMITER» по строке 6 –
. Повторите попытку. Я редактировал свой код, и он может создать процедуру i test на Mysql Workbench –