Функция MySQL с UPDATE после SELECT с использованием переменной RETURN

0

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

Я создал функцию без ошибок и могу просто запустить функцию, пока она возвращает запись, но я замечаю, что она не запускает запрос UPDATE с использованием возвращаемой переменной.

Я подтвердил, что запрос UPDATE работает при его запуске.

Вот мой скрипт CREATE FUNCTION:

DELIMITER $$
 CREATE FUNCTION 'cc_jqual_update'(
    'cause_location' VARCHAR(30)
)
RETURNS VARCHAR(20)
    LANGUAGE SQL
    NOT DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
DECLARE cause_number VARCHAR(20);
select court_cases.cause_no INTO cause_number
  from court_cases
  where ((court_cases.cause_loc = cause_location)
   and (court_cases.cause_status not in ('Dismissed','Disposed'))) LIMIT 1;
RETURN cause_number;
update court_cases set last_read = now() where cause_no = cause_number;
END
$$
DELIMITER ;
  • 1
    Может быть, ваш логический порядок возврата и обновления. Попробуйте поменять два утверждения?
  • 0
    RETURN остановит выполнение. Это всегда должно быть последним, что вы делаете в функции.
Показать ещё 4 комментария
Теги:
procedure
function

1 ответ

0

Попробуйте создать хранимую процедуру для операций CRUD. Используйте оператор SELECT для выходного значения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню