SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 27.05.2018 18:47:52

ff.0xff
Участник
Зарегистрирован: 27.05.2018
Сообщений: 3

Дописать функцию в mysql

Привет ребят, помогите дописать функцию.
Пытаюсь сделать функцию при вызови которой значение столбца увеличивается на 1
после чего проверяется его кратность 5 и возвращается
1 - если кратно
0 - если нет

щас вот застрял на таком месте не знаю как дальше быть


DROP FUNCTION IF EXISTS harvester.Visit ;

DELIMITER $$
$$
CREATE FUNCTION Visit()
RETURNS TINYINT(1)
UPDATE Visits SET amount = (@amount:=amount + 1) WHERE id=1;
@modparam := (@amount mod 5)=0;
RETURN @modparam;
BEGIN
END $$
DELIMITER ;
 


Но сейчас ругается что у return нет возвращаемого значения. Не знаю почему....

Неактивен

 

#2 18.06.2018 15:38:14

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Дописать функцию в mysql

А BEGIN у Вас где? smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#3 18.06.2018 16:49:39

ff.0xff
Участник
Зарегистрирован: 27.05.2018
Сообщений: 3

Re: Дописать функцию в mysql

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


BEGIN
    DECLARE counter INT;
    DECLARE param INT;
    UPDATE Visits SET amount = (@counter:=amount + 1) WHERE `id`=1;
    set param := (@counter mod 5)=0;
    IF param != 0 THEN
        return 0;
    ELSE
        return 1;
    END IF;
END

Неактивен

 

#4 18.06.2018 16:54:21

ff.0xff
Участник
Зарегистрирован: 27.05.2018
Сообщений: 3

Re: Дописать функцию в mysql

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


BEGIN
    DECLARE counter INT;
    DECLARE param INT;
    UPDATE Visits SET amount = (@counter:=amount + 1) WHERE `id`=1;
    set param := (@counter mod 5)=0;
    IF param != 0 THEN
        return 0;
    ELSE
        return 1;
    END IF;
END

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson