Mysql Создать оператор процедуры вставки неполный - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь записать небольшую процедуру регистрации для моей базы данных.Я создаю процедуру с таким утверждением:

 create procedure prc_wirte_log (
    in p_schema varchar(255),
    in p_item varchar(255),
    in p_message varchar(255)
)
begin
    insert into weather.log (`schema`, item, message) values (p_schema, p_item, p_message);
end;

Я получаю ошибку Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 7 0.063 sec

Почему?MySQL Workbench означает Incomplet Statment: excepting ; после запроса на вставку.

Что я могу сделать?

1 Ответ

0 голосов
/ 19 сентября 2018

Для процедур с несколькими состояниями (предполагается, что при наличии BEGIN ... END) требуются переопределения разделителей для предотвращения преждевременного завершения определения процедуры операторами, содержащимися в них.

Как правило, вам нужно выполнить что-то вроде:

DELIMITER //

CREATE PROCEDURE blah()
BEGIN
   statements;
END//

DELIMITER ;

Первый пример документации здесь демонстрирует это (хотя последние два на этой странице, похоже, повторяют вашу ошибку.

...