Процедура изменения значения auto_increment для таблицы - PullRequest
0 голосов
/ 06 января 2019

Я хочу написать процедуру, которая после выполнения другой процедуры изменяет значение автоинкремента в моей таблице. Проблема в том, что процедура создана, но не работает. Когда я пытаюсь запустить, у меня появляется ошибка # 1210 - Неправильные аргументы для EXECUTE. Я нахожу похожую проблему в ссылке: Установите значение AUTO_INCREMENT через переменную в MySql , но это не работает для меня.

Я пытаюсь изменить @v_value для v_value (обычная переменная, а не @variable). Также я пытаюсь использовать '?' в @v_sql, но не работает тоже. Я пытаюсь изменить «READS SQL DATA», но неважно. Помогите, что идет не так.

DELIMITER //
CREATE PROCEDURE check_increment_value()
READS SQL DATA
BEGIN
SET @v_value = (SELECT MAX(id_version)+1 FROM versions);
SET @v_sql = CONCAT('ALTER TABLE `wersje` AUTO_INCREMENT = ',@v_value);
PREPARE st FROM @v_sql;
EXECUTE st USING @v_value;
END
//

Спасибо за вашу помощь:)

1 Ответ

0 голосов
/ 06 января 2019

Вы передаете параметр с помощью интерполяции строк, а не с помощью подготовленного оператора, поэтому вам не нужно указывать предложение using:

EXECUTE st;
...