Определить имена таблиц и столбцов в качестве аргументов в функции plpgsql?
Это должно быть просто, но я делаю свои первые шаги в функциях Postgres и не могу найти ничего, что работает ...
Я хотел бы создать функцию, которая будет изменять таблицу и / или столбец, и я не могу найти правильный способ указания моих таблиц и столбцов в качестве аргументов в моей функции.
Что-то вроде:
CREATE OR REPLACE FUNCTION foo(t table)
RETURNS void AS $
BEGIN
alter table t add column c1 varchar(20);
alter table t add column c2 varchar(20);
alter table t add column c3 varchar(20);
alter table t add column c4 varchar(20);
END;
$ LANGUAGE PLPGSQL;
select foo(some_table)
В другом случае я хотел бы иметь функцию, которая изменяет определенный столбец из определенной таблицы:
CREATE OR REPLACE FUNCTION foo(t table, c column)
RETURNS void AS $
BEGIN
UPDATE t SET c = "This is a test";
END;
$ LANGUAGE PLPGSQL;
Возможно ли это сделать?