Написание скрипта создает и вызывает хранимую процедуру - PullRequest
0 голосов
/ 17 апреля 2019

Напишите скрипт, который создает и вызывает хранимую процедуру с именем test. Эта хранимая процедура должна объявите переменную и задайте для нее количество всех продуктов в таблице «Продукты». Если счет больше больше или равно 7, хранимая процедура должна отображать сообщение, которое говорит: «Количество продуктов больше или равно 7 ”. В противном случае следует сказать: «Количество продуктов меньше 7».

DROP PROCEDURE IF EXISTS test;
CREATE  procedure test()
BEGIN
DECLARE count_of_7 DECIMAL(10,2);

SELECT  count(product_id) 
into count_of_7

FROM products;
IF count_of_7 >= 7 THEN

SELECT 'The number of products is greater than or equal to 7' AS message;
ELSE

SELECT 'The number of products is less than 7' AS message;
end if;
call test();

21: 38: 55 CREATE процедура test () BEGIN DECLARE count_of_7 DECIMAL (10,2) Код ошибки: 1064. В синтаксисе SQL есть ошибка; проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса для использования рядом с '' в строке 3 0,016 сек

1 Ответ

0 голосов
/ 17 апреля 2019

Вам необходимо изменить разделитель перед объявлением процедуры. Кроме того, вы пропускаете оператор END. Это должно работать:

DROP PROCEDURE IF EXISTS test;
DELIMITER //
CREATE  procedure test()
BEGIN
    DECLARE count_of_7 DECIMAL(10,2);

    SELECT count(product_id) into count_of_7 FROM products;
    IF count_of_7 >= 7 THEN
        SELECT 'The number of products is greater than or equal to 7' AS message;
    ELSE
        SELECT 'The number of products is less than 7' AS message;
    END IF;
END //
DELIMITER ;
call test();
...