Ошибка при выполнении процедуры сохранения mysql - PullRequest
0 голосов
/ 05 августа 2020

Я создал простую хранимую процедуру, которая отбрасывает представление. Я изучаю хранимые процедуры в mysql, так что терпите меня,

DELIMITER $$
CREATE PROCEDURE dropView (
    IN viewName varchar(4000)
)
BEGIN
    
    SET @sql:=CONCAT('DROP VIEW ',@viewName);
        PREPARE dynamic_statement FROM @SQL;
        EXECUTE dynamic_statement;
        DEALLOCATE PREPARE dynamic_statement;

END$$
DELIMITER ;

И я вызываю это так:

SET @theView = '`Report`;';

CALL dropView(@theView);

Я получаю сообщение об ошибке

Код ошибки: 1064. У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии MySQL сервера, чтобы найти правильный синтаксис для использования рядом с 'NULL' в строке 1

Я использую mysql 8.0.17

Согласно это я могу использовать «СОЗДАТЬ / УДАЛИТЬ ПРОСМОТР» в подготовленном mysql.

1 Ответ

1 голос
/ 05 августа 2020

@viewNameis а 9.4. Пользовательские переменные и viewName один параметр хранимой процедуры ( 13.1.17 CREATE PROCEDURE и CREATE FUNCTION ), являются разными переменными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...