Tabellen- und Spaltennamen als Argumente in einer plpgsql-Funktion definieren?

Es muss einfach sein, aber ich mache meine ersten Schritte in die Postgres-Funktionen und kann nichts finden, was funktioniert ...

Ich möchte eine Funktion erstellen, mit der eine Tabelle und / oder Spalte geändert werden kann, und ich finde keine Möglichkeit, meine Tabellen und Spalten als Argumente in meiner Funktion anzugeben.

So etwas wie:

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)

In einem anderen Fall hätte ich gerne eine Funktion, die eine bestimmte Spalte aus einer bestimmten Tabelle ändert:

CREATE OR REPLACE FUNCTION foo(t table, c column)
RETURNS void AS $
BEGIN
   UPDATE t SET c = "This is a test";
END;
$ LANGUAGE PLPGSQL;

Ist das möglich?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage