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?