Tabelle umbennen bei Abhängigkeiten

Ludwigmller

SQL-Guru
Beiträge
171
Guten Morgen,
Gibt es in PostgreSQL ein vereinfachtes Vorgehen beim Umbenennen von einer Tabelle oder eines Schemas?
Wenn man es "einfach so" macht, und Abhängigkeiten (Functions, Views, ...) bestehen, muss man ja in jeder dieser ebenfalls eine Umbennenung vornehmen. Meistens vergisst man dann eine Stelle, die erst beim nächsten Aufruf durch eine Fehlermeldung auffällt.
Kann man das eleganter lösen?

Gruß Ludwig
 
Werbung:
also für Funktionen wird es vermutlich schwer, aber ansonsten klappt das schon out-of-the-Box, oder?

Code:
laptop106oxuk:~ andreaskretschmer$ kubectl exec --stdin --tty cluster-example-1 -- psql test
Defaulted container "postgres" out of: postgres, bootstrap-controller (init)
psql (14.1)
Type "help" for help.

test=# create schema schema1;
CREATE SCHEMA
test=# create table schema1.test1(i int);
CREATE TABLE
test=# create schema schema2;
CREATE SCHEMA
test=# create view schema2.test1 as select * from schema1.test1;
CREATE VIEW
test=# alter schema schema1 rename to schema_neu;
ALTER SCHEMA
test=# select * from schema2.test1 ;
 i 
---
(0 rows)

test=# \d+ schema2.test1 
                           View "schema2.test1"
 Column |  Type   | Collation | Nullable | Default | Storage | Description 
--------+---------+-----------+----------+---------+---------+-------------
 i      | integer |           |          |         | plain   | 
View definition:
 SELECT test1.i
   FROM schema_neu.test1;

test=#
 
Werbung:
Ich habe mehr Funktionen als Views
Du kannst Dir das hier mal anschauen, ob es wie dargestellt für Funktionen klappt, weiß ich nicht.
Besonders der Abschnitt ab "With availability of pg_identify_object() system function on 9.3, the view and function outputs can be improved with the following code."
Damit solltest Du jedenfalls abhängige Objekte abfragen können. (Immer drauf achten, aus welcher Richtung Du schaust!). Sicher kannst Du die Views auch für Deine Zwecke anpassen oder besser noch ergänzen.
 
Zurück
Oben