Как создать сохраненный процесс в mysql?

#mysql #stored-procedures #syntax-error

#mysql #хранимые процедуры #синтаксическая ошибка

Вопрос:

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

например: ошибка SQL [1064] [42000]: у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с ‘DELIMITER $$

СОЗДАЙТЕ ПРОЦЕДУРУ spClean_T() НАЧНИТЕ СОЗДАВАТЬ ТАБЛИЦУ staging_table КАК ‘ в строке 2

 DELIMITER $$

CREATE PROCEDURE spClean_T()
BEGIN
    CREATE TABLE staging_table AS SELECT * FROM raw_api_data
END$$

DELIMITER ;`
  

Спасибо

Комментарии:

1. Оператор CREATE TABLE должен быть завершен с ; помощью . Также вы можете удалить BEGIN-END — в данном случае это лишнее.

Ответ №1:

Вы должны заканчивать все команды точкой с запятой, иначе mysql будет искать больше кода

 DELIMITER $$

CREATE PROCEDURE spClean_T()
BEGIN
    CREATE TABLE staging_table AS SELECT * FROM raw_api_data;
END$$

DELIMITER ;
  

Но если у вас нет дополнительных команд

Сделайте простой без РАЗДЕЛИТЕЛЯ

 CREATE PROCEDURE spClean_T()
CREATE TABLE staging_table AS SELECT * FROM raw_api_data;