Я пытаюсь обновить таблицу PostgreSQL с помощью функции.
Моя функция:
CREATE OR REPLACE FUNCTION update_array_words(varchar, varchar[], int[], int, int)
RETURNS int AS $$
DECLARE
passed int;
j int;
k int;
BEGIN
passed := 0;
j := $4 + $5;
k := 0;
FOR i IN $4..j LOOP
UPDATE tab_files
SET key_words[i] = $2[k], num_key_words[i] = $3[k]
WHERE path_to_file = $1;
END LOOP;
RETURN passed;
END;
$$
LANGUAGE plpgsql
;
Для вызова моей функции:
SELECT update_array_words('path_name_to_file', '{"susana"}', '{1}', 1, 1);
Проблема в том, что когда я делаю простой выбор в моей командной строке PostgreSQL, данные из обновления null
.
Мой выбор:
SELECT * FROM tab_files;
Выход:
key_words num_key_words
| [0:2]={marques,NULL,NULL} | | [0:2]={3,NULL,NULL} |
Что случилось с моим кодом?