Я пытаюсь создать функцию PostgreSQL, которая обновит список строк. Поэтому я хочу взять список текста [] в качестве аргумента и использовать предложение IN для выполнения запроса. Кроме того, я хочу, чтобы количество строк обновлялось как возвращаемое значение. Это работает для меня:Выполнение запроса на обновление с предложением IN в функции postgres
CREATE FUNCTION set_mail_isbeingused(list_of_mail_names text[]) RETURNS void AS $$
BEGIN
FOR i in 1 .. array_upper(list_of_mail_names,1)
LOOP
UPDATE mail_isbeingused set isbeingused = 'true' where mailname = list_of_mail_names[i];
END LOOP;
END;
$$
LANGUAGE plpgsql;
Но я хочу, чтобы выполнить его в одном запросе обновления с пунктом IN.
CREATE FUNCTION set_mail_isbeingused(list_of_mail_names text[]) RETURNS void AS $$
BEGIN
UPDATE mail_isbeingused set isbeingused = 'true' where mailname in list_of_mail_names;
END;
$$
LANGUAGE plpgsql;
Это то, что я пытался сделать. Может ли кто-нибудь помочь мне в этом?
Спасибо! это сработало. – doctore