Benennen Sie eine Tabelle innerhalb eines Schemas in PostgreSQL um
In PostgreSQL neigen wir oft dazu, Tabellen zu ERSTELLEN
und sie zum Speichern von Daten zu verwenden. Wenn wir eine Tabelle wie folgt ERSTELLEN
:
create table cat (
ID int,
NAME text
)
Wir haben unserem Tisch bereits bei der Erstellung einen NAMEN
zugewiesen. Im obigen Beispiel haben wir unserer Tabelle den Namen CAT
gegeben, und sobald dies behoben ist, müssen wir wahrscheinlich andere Mittel verwenden, um unsere Tabelle zu UMBENENNEN
, sobald sie erstellt wurde.
Die Syntax zum ERSTELLEN
einer Tabelle lautet wie folgt:
CREATE TABLE [Table_name] (
[variable_names] [variable_types]
)
Was ist ein SCHEMA
? Ein SCHEMA
enthält Datenbankobjekte wie Tabellen, Ansichten, Indizes und möglicherweise alles, was in Ihrem DBMS
enthalten sein kann.
Lassen Sie uns nun fortfahren und lernen, wie wir unsere Tabelle in unserem SCHEMA
UMBENENNEN
können, sobald sie erstellt wurde.
die grundlegende Umbenennungssyntax in PostgreSQL
Um eine bereits in PostgreSQL erstellte Tabelle umzubenennen, können wir die Anweisung ALTER
verwenden, die dazu neigt, Änderungen vorzunehmen oder ein bereits im PostgreSQL-Schema erstelltes Objekt zu modifizieren. Eine ALTER
-Anweisung, die dazu tendieren würde, eine Tabelle RENAME
zu machen, verwendet Syntax.
ALTER TABLE [ IF EXISTS ] name
RENAME TO new_name
Nehmen wir als Beispiel die Tabelle CAT
, die wir in unseren Tutorials mehrfach verwenden. Eine SELECT
-Operation auf unserer Datenbank würde etwas wie folgt zurückgeben.
Select * from information_schema.tables
where table_name = 'cat'
Ausgang:
"postgres' "public" "cat" "BASE TABLE"
Und dann können wir die Operation RENAMING
für diese Tabelle wie folgt durchführen.
alter table CAT rename to KITTEN
Und jetzt, wenn wir in unserer Datenbank nach CAT
suchen, würde es ein leeres Ergebnis zurückgeben. Das Nachschlagen von KITTEN
würde jedoch mit den gleichen Werten wie die CAT
-Tabelle perfekt funktionieren.
"postgres" "public" "kitten" "BASE TABLE"
Daher funktioniert unser einfaches RENAME
mit der ALTER
-Funktion perfekt. Sie können dieselbe Abfrage in PSQL
ausführen, indem Sie etwas verwenden.
ALTER TABLE cat rename to Kitten;
Und es wird bei Erfolg die Ausgabe wie folgt zurückgeben.
Ausgang:
Fehler beim UMBENENNEN
bestimmter SCHEMA
-Tabellen in PostgreSQL
Der Syntaxfehler ist einer der häufigsten Fehler bei der Durchführung einer RENAME
-Operation an einer Tabelle, die in einem SCHEMA
erstellt wurde, das sich von dem derzeit vorhandenen unterscheidet.
Wenn Sie beispielsweise dazu neigen, ein SCHEMA
wie folgt zu erstellen:
CREATE SCHEMA tester;
Und dann machen Sie einen Tisch darin.
CREATE TABLE tester.dog (
id INT,
name TEXT
)
Die Tabelle befindet sich nun innerhalb des angegebenen SCHEMA
. Wenn Sie jedoch die Operation RENAME
auf folgende Weise aufrufen, wird ein Fehler zurückgegeben.
ALTER TABLE tester.dog RENAME TO tester.doggy
Ausgang:
ERROR: syntax error at or near "."
LINE 1: ALTER TABLE tester.dog RENAME TO tester.doggy
Warum? Wenn Sie sich den Text UMBENENNEN
ansehen, sagt er etwas wie folgt.
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
RENAME [ COLUMN ] column_name TO new_column_name
Der new_column_name
muss ein gültiger STRING
sein. Sie können also keine anderen Zeichen wie .
verwenden. und ,
, was einen STRING
ungültig machen kann.
Wenn Sie also fortfahren und etwas wie folgt tun.
alter table tester.dog rename to doggy;
Es wird einwandfrei funktionieren. Wenn wir uns also jetzt die Tabelle DOMAIN.DOG
ansehen, wäre sie RENAMED
in DOMAIN.DOGGY
gewesen.
Eine andere Möglichkeit, dies zu erreichen, besteht darin, eine Problemumgehung zu verwenden, die dazu neigt, die Tabelle in etwas zu UMBENENNEN
, das wir oben sehen. Da wir derzeit mit einem SCHEMA
arbeiten, können bei der Verwendung des .
Fehler auftreten. Notation, um eine Tabelle innerhalb eines SCHEMA
zu spezifizieren.
Jetzt werden wir weitermachen und etwas über SUCHPFADE
lernen.
SEARCH PATHS
für UMBENENNEN
SCHEMA TABLES
in PostgreSQL
SUCHPFADE
sind global so definiert, dass sie dazu neigen, die Referenz des aktuell referenzierten SCHEMA
zu derjenigen zu ändern, die in der SUCHPFAD
-Syntax definiert ist. Es verwendet die folgende Syntax.
search_path (string)
Und wird unter CLIENT CONNECTION DEFAULTS
definiert. Führen Sie die folgende Abfrage aus, um die TABELLE
zu UMBENENNEN
.
SET search_path to tester;
alter table doggy rename to dogie
Es SETS
den search_path
auf das DOMAIN
-Schema, und wenn wir dann die Tabelle DOGI
aufrufen, weiss es automatisch, dass die Tabelle vom DOMAIN
-Schema referenziert wird.
Daher ist diese einzeilige Abfrage viel besser geeignet, um Tabellen innerhalb eines SCHEMA
zu referenzieren, als eine DOMAIN.TABLE_NAME
aufzurufen.
SEARCH_PATH
kann auch mehrere SCHEMA
-Namen haben, die durch Kommas getrennt sind, und wenn wir eine TABLE
oder OBJECT
aufrufen, wird es von jedem dieser definierten SCHEMAS
geprüft.
Sie können auch die Klausel IF EXISTS
hinzufügen, um zu prüfen, ob die referenzierte TABLE
oder OBJECT
existiert, und dann fortfahren und sie ausführen.
Wir hoffen, Sie haben gelernt, wie man Tabellen in PostgreSQL mit verschiedenen Optionen und Szenarien UMBENENNT
. Bitte beachten Sie, dass in vielen Fällen verschiedene Varianten der RENAME
-Anweisung funktionieren können.
Wenn Sie in einer Datenbank arbeiten, wissen Sie, welches SCHEMA
referenziert wird, welches OBJEKT
aufgerufen wird und wo es erforderlich ist, um Fehler zu vermeiden und zu verhindern. Wir hoffen, dass unsere Lösungen Ihnen helfen können, die verschiedenen Möglichkeiten zu verstehen, wie eine Tabelle umbenannt werden kann.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub