Ich habe eine materialisierte Ansicht in Postgres wieKann ich eine String-Liste von einer Postgres-Funktion zurückgeben?
CREATE MATERIALIZED VIEW my_view AS SELECT * FROM my_table WHERE my_column NOT IN ('a', 'b', 'c');
Aber ('a', 'b', 'c')
Teil meiner Business-Logik ist, und ich möchte es machen können, in ('a', 'b', 'c', 'd')
oder ('a')
ohne my_view
zu löschen und erneut erstellen es, da es hat eine Reihe abhängiger Ansichten. Deshalb möchte ich die Definition von my_view
um so etwas wie
CREATE MATERIALIZED VIEW my_view AS SELECT * FROM my_table WHERE my_column NOT IN my_unwanted_list();
ersetzen Und dann würde my_unwanted_list
nur eine Konstante zurückkehren, dass ich setzen konnte, was ich will von my_unwanted_list
‚s Definition zu aktualisieren. Dann kann ich einen unerwünschten Wert hinzufügen, indem ich einfach my_unwanted_list
aktualisiere und my_view
aktualisiere.
Aber ich habe einige Probleme, die Syntax für my_unwanted_list
richtig zu bekommen. Wie schreibe ich eine PostgreSql-Funktion, die etwas zurückgibt, das ich in einem Filter IN
verwenden kann?