Синтаксическая проблема с MySQL хранимой процедурой - PullRequest
0 голосов
/ 26 марта 2020
create procedure testproc
as
begin
select * from customers
end

В этом коде отображается ошибка. Если я наведите курсор мыши, как показано на рисунке, это недопустимо в этой позиции. Я пробовал все другие коды означает разные альтернативы, но все же проблема.

Ответы [ 2 ]

0 голосов
/ 26 марта 2020

попробуйте это:

CREATE FUNCTION testproc() RETURNS INT    
BEGIN
    DECLARE test INT;
    SELECT 42 INTO test; 
    RETURN test;
END

это creates новый FUNCTION с именем testproc, возвращающий тип данных INT. Между BEGIN и END вы найдете тело функции, которая выполняется каждый раз, когда вы вызываете функцию.

  • Сначала мы DECLARE переменная test типа INT .
  • Затем мы запускаем запрос (SELECT 42) и сохраняем результат INTO test.
  • Наконец, мы RETURN test.

Чтобы выполнить это функция, вы можете использовать

SELECT testproc();

, который вернет 42.

0 голосов
/ 26 марта 2020

Если вы не передаете какие-либо параметры или не обрабатываете результаты, рассмотрите возможность создания представления. Вот так:

USE `database_name`;
CREATE OR REPLACE VIEW `v_my_view_name`
AS
    SELECT * FROM customers;

Затем вы можете вызвать представление так:

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