PostgreSQL ALTER TABLE: Spalte hinzufügen und umbenennen

⚡ Intelligente Zusammenfassung

PostgreSQL ALTER TABLE ändert die Struktur einer bestehenden Tabelle und ermöglicht es Ihnen, Spalten hinzuzufügen oder zu entfernen, eine Spalte oder die gesamte Tabelle umzubenennen, Standardwerte festzulegen und Prüfbedingungen anzuhängen, ohne das Objekt neu erstellen zu müssen.

  • 🧱 Syntax: Die Aktion ALTER TABLE Tabellenname führt pro Anweisung eine strukturelle Änderung durch.
  • Spalte hinzufügen: Mit dem Befehl ADD Spaltenname Datentyp wird eine neue Spalte an die Tabelle angehängt.
  • Umbenennen: Mit den Funktionen RENAME COLUMN und RENAME können Sie einen Spaltennamen oder den Tabellennamen ändern.
  • ⚙️ Standardwert: ALTER COLUMN SET DEFAULT stellt einen Wert für zukünftige INSERT-Zeilen bereit.
  • 🛡️ Bedingung prüfen: ADD CHECK prüft neue Daten und weist Werte zurück, die gegen die Regel verstoßen.
  • 🤖 KI-Migrationen: KI-Assistenten erstellen ALTER TABLE-Skripte und überprüfen diese auf sichere Bereitstellung.

PostgreSQL ALTER TABELLE

Was ist ALTER TABLE in PostgreSQL?

Das ALTER TABELLE Der Befehl wird verwendet, um die Struktur eines PostgreSQL Mit diesem Befehl lassen sich die Tabellenspalten oder der Name der Tabelle selbst ändern, ohne sie zu löschen.ping und das Objekt neu zu erstellen.

Syntax

Hier ist die Syntax für PostgreSQL ALTER TABLE-Befehl:

ALTER TABLE table-name action;

Der Parameter „Tabellenname“ ist der Name der Tabelle, die Sie ändern möchten. Der Parameter „Aktion“ beschreibt die auszuführende Aktion, z. B. das Ändern des Namens oder des Datentyps einer Spalte.

Beschreibung

Der Befehl ALTER TABLE ändert die Definition einer vorhandenen Tabelle. Er nimmt die folgenden Unterformen an:

  • SPALTE HINZUFÜGENHierbei wird eine ähnliche Syntax wie beim Befehl CREATE TABLE verwendet, um einer Tabelle eine neue Spalte hinzuzufügen.
  • DROP-SÄULE: für Tropfenping Eine Tabellenspalte. Die für die Spalten festgelegten Einschränkungen und Indizes werden ebenfalls entfernt.
  • Standardeinstellung festlegen/löschenWird verwendet, um den Standardwert für eine Spalte festzulegen oder zu entfernen. Die Änderung gilt nur für nachfolgende Spalten. INSERT-Anweisungen.
  • SET/DROP NICHT NULL: Ändert, ob eine Spalte Nullwerte zulässt oder nicht.
  • SET-STATISTIKEN: zum Festlegen des Ziels für die Statistikerfassung für jede Spalte bei ANALYZE-Operationen.
  • LAGERUNG EINSTELLEN: zum Festlegen des Speichermodus für eine Spalte, ob inline oder in einer zusätzlichen Tabelle.
  • SET OHNE OIDS: Wird verwendet, um die alte OID-Spalte der Tabelle zu entfernen.
  • UMBENENNEN: zum Ändern des Tabellennamens oder eines Spaltennamens.
  • table_constraint HINZUFÜGEN: Wird verwendet, um einer Tabelle eine neue Einschränkung hinzuzufügen. Es verwendet dieselbe Syntax wie die TABELLE ERSTELLEN Befehl.
  • TROPFENBESCHRÄNKUNG: wird für Tropfen verwendetping eine Tabellenbeschränkung.
  • EIGENTÜMER: zum Ändern des Besitzers einer Tabelle, Sequenz, eines Index oder einer Ansicht auf einen bestimmten Benutzer.
  • CLUSTER: zum Markieren einer Tabelle, die für zukünftige Clusteroperationen verwendet werden soll.

Ändern einer Spalte

Eine Spalte kann auf verschiedene Arten geändert werden. Solche Änderungen werden mit dem Befehl ALTER TABLE durchgeführt. Im Folgenden werden diese erläutert.

Hinzufügen einer neuen Spalte

Um eine neue Spalte zu a hinzuzufügen PostgreSQL Tabelle wird der Befehl ALTER TABLE mit der folgenden Syntax verwendet:

ALTER TABLE table-name
  ADD new-column-name column-definition;

Der Tabellenname ist der Name der zu ändernden Tabelle. Der neue Spaltenname ist der Name der neu hinzuzufügenden Spalte. Die Spaltendefinition ist die Datentyp der neuen Spalte. Siehe die untenstehende Buchtabelle:

PostgreSQL ALTER TABLE Beispiel

Die Tabelle hat zwei Spalten, „id“ und „name“. Wir müssen der Tabelle eine neue Spalte hinzufügen und ihr den Namen „author“ geben. Führen Sie dazu einfach folgenden Befehl aus:

ALTER TABLE Book
  ADD author VARCHAR(50);

Nachdem Sie den obigen Befehl ausgeführt haben, sieht die Buchtabelle nun wie folgt aus:

PostgreSQL ALTER TABLE Beispiel

Die neue Spalte wurde erfolgreich hinzugefügt.

Umbenennen einer Tabellenspalte

Mit dem Befehl ALTER TABLE können wir den Namen einer Spalte ändern. In diesem Fall wird der Befehl mit der folgenden Syntax verwendet:

ALTER TABLE table-name
  RENAME COLUMN old-name TO new-name;

Der Tabellenname ist der Name der Tabelle, deren Spalte umbenannt werden soll. Der alte Name ist der aktuelle Name der Spalte, der neue Name der neue Name. Betrachten Sie die unten dargestellte Tabelle „Buch“:

Buch:

PostgreSQL ALTER TABLE Beispiel

Wir müssen den Namen der Spalte „Autor“ in „Buchautor“ ändern. Hier ist der Befehl:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Nachdem wir den Befehl ausgeführt haben, können wir die Struktur der Tabelle anzeigen:

PostgreSQL ALTER TABLE Beispiel

Der Spaltenname wurde erfolgreich geändert.

Festlegen eines Standardwerts für eine Spalte

Wir können einen Standardwert für eine Spalte festlegen, sodass dieser auch dann verwendet wird, wenn Sie bei INSERT-Operationen keinen Wert für diese Spalte angeben. In diesem Fall kann der Befehl ALTER TABLE mit folgender Syntax verwendet werden:

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

Der Tabellenname ist der Name der Tabelle, deren Spalte geändert werden soll. Der Spaltenname ist der Name der Spalte, deren Standardwert festgelegt werden soll, und der Wert ist der Standardwert dieser Spalte. Betrachten Sie die untenstehende Tabelle „Buch“:

PostgreSQL ALTER TABLE Beispiel

Wir müssen einen Standardwert für die Spalte book_author festlegen. Wir können den folgenden Befehl ausführen:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Fügen wir nun eine Zeile in die Tabelle ein:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners');

Beachten Sie, dass wir nur für zwei Spalten, id und name, Werte eingefügt haben. Für die Spalte book_author wurde jedoch der Standardwert verwendet:

PostgreSQL ALTER TABLE Beispiel

Hinzufügen einer Check-Einschränkung

Eine Check-Einschränkung hilft bei der Validierung der Datensätze, die in eine Tabelle eingefügt werden. Wir können dies erreichen, indem wir den Befehl ALTER TABLE mit der Anweisung ADD CHECK kombinieren. Syntax:

ALTER TABLE table-name ADD CHECK expression;

Der Tabellenname ist der Name der zu ändernden Tabelle, und der Ausdruck ist die Einschränkung, die für die Tabellenspalte gelten soll. Ändern wir die Spalte „book_author“ der Tabelle „Book“ so, dass sie nur die Werte „Nicholas“ und „Samuel“ akzeptiert:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

Versuchen wir nun, einen anderen Wert als „Nicholas“ oder „Samuel“ in die Spalte „book_author“ der Tabelle „Book“ einzufügen:

INSERT INTO Book
VALUES(7, 'besten PostgreSQL Book', 'Gregory Bush');

Die Anweisung gibt den folgenden Fehler zurück:

PostgreSQL ALTER TABLE Beispiel

Der Einfügevorgang ist fehlgeschlagen, da wir die Prüfbedingung verletzt haben.

Eine Tabelle umbenennen

Hier ist die Syntax für den ALTER TABLE-Befehl zum Umbenennen einer Tabelle:

ALTER TABLE table-name
  RENAME TO new-table-name;

Der Tabellenname ist der aktuelle Name der Tabelle, und der neue Tabellenname ist der neue Name, der der Tabelle zugewiesen werden soll. Ändern wir beispielsweise den Namen der Tabelle „Buch“ in „Bücher“:

ALTER TABLE Book
  RENAME TO Books;

Verwenden von pgAdmin

Bisher wurden die Aktionen über die SQL-Shell ausgeführt. Nun wollen wir uns ansehen, wie dieselben Aktionen visuell mit pgAdmin durchgeführt werden können.

Hinzufügen einer neuen Spalte

Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.

Schritt 2)

  1. Klicken Sie in der Navigationsleiste links auf Datenbanken.
  2. Klicken Sie auf Demo.

PostgreSQL ALTER TABLE Beispiel

Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:

ALTER TABLE Book
  ADD author VARCHAR(50);

Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.

PostgreSQL ALTER TABLE Beispiel

Schritt 5) Um zu überprüfen, ob die Spalte hinzugefügt wurde, gehen Sie wie folgt vor:

  1. Klicken Sie im linken Navigationsbereich auf Datenbanken.
  2. Demo erweitern.
  3. Erweitern Sie Schemata.
  4. Erweitern Sie „Öffentlich“.
  5. Erweitern Sie Tabellen.
  6. Buch erweitern.
  7. Erweitern Sie Spalten.

PostgreSQL ALTER TABLE Beispiel

Die Spalte hätte wie unten gezeigt hinzugefügt werden sollen:

PostgreSQL ALTER TABLE Beispiel

Umbenennen einer Tabellenspalte

Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.

Schritt 2)

  1. Klicken Sie in der Navigationsleiste links auf Datenbanken.
  2. Klicken Sie auf Demo.

PostgreSQL ALTER TABLE Beispiel

Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.

PostgreSQL ALTER TABLE Beispiel

Schritt 5) Um zu überprüfen, ob die Änderung erfolgreich war, erweitern Sie die Spalten der Buchtabelle wie zuvor:

PostgreSQL ALTER TABLE Beispiel

Die Spalten sollten nun wie folgt aussehen:

PostgreSQL ALTER TABLE Beispiel

Die Spalte wurde erfolgreich geändert.

Festlegen eines Standardwerts für eine Spalte

Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.

Schritt 2)

  1. Klicken Sie in der Navigationsleiste links auf Datenbanken.
  2. Klicken Sie auf Demo.

PostgreSQL ALTER TABLE Beispiel

Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.

PostgreSQL ALTER TABLE Beispiel

Schritt 5) Zum Testen führen Sie folgenden Befehl im Abfrageeditor aus:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners')

Schritt 6) Jetzt können wir die Tabelle abfragen, um zu prüfen, ob der Standardwert in die Spalte book_author eingefügt wurde:

PostgreSQL ALTER TABLE Beispiel

Hinzufügen einer Check-Einschränkung

Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.

Schritt 2)

  1. Klicken Sie in der Navigationsleiste links auf Datenbanken.
  2. Klicken Sie auf Demo.

PostgreSQL ALTER TABLE Beispiel

Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.

PostgreSQL ALTER TABLE Beispiel

Schritt 5) Um dies zu testen, geben Sie die folgende Abfrage im Abfrageeditor ein und klicken Sie auf die Schaltfläche „Ausführen“:

INSERT INTO Book
VALUES(7, 'besten PostgreSQL Book', 'Gregory Bush');

PostgreSQL ALTER TABLE Beispiel

Es wird Folgendes zurückgegeben:

PostgreSQL ALTER TABLE Beispiel

Eine Tabelle umbenennen

Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.

Schritt 2)

  1. Klicken Sie in der Navigationsleiste links auf Datenbanken.
  2. Klicken Sie auf Demo.

PostgreSQL ALTER TABLE Beispiel

Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:

ALTER TABLE Book
  RENAME TO Books;

Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.

PostgreSQL ALTER TABLE Beispiel

Schritt 5) Um zu überprüfen, ob die Tabelle umbenannt wurde, erweitern Sie Datenbanken > Demo > Schemas > Öffentlich > Tabellen:

PostgreSQL ALTER TABLE Beispiel

Die Tabelle wurde erfolgreich umbenannt.

Laden Sie die in diesem Tutorial verwendete Datenbank herunter

Häufig gestellte Fragen

Verwenden Sie ALTER TABLE Tabellenname ALTER COLUMN Spaltenname TYPE neuer_Typ. Fügen Sie eine USING-Klausel hinzu, wenn Werte konvertiert werden müssen, z. B. ALTER COLUMN Preis TYPE numeric USING Preis::numerisch. PostgreSQL Die Spalte wird neu geschrieben und geprüft, ob die vorhandenen Daten dem neuen Datentyp entsprechen.

Nur wenn der Standardwert flüchtig ist. PostgreSQL 11. Die Option ADD COLUMN mit einem konstanten Standardwert aktualisiert den Katalog sofort, ohne Zeilen neu zu schreiben. Ein Standardwert, der eine Funktion aufruft, erzwingt hingegen weiterhin eine vollständige Tabellenneuschreibung und eine stärkere Sperre.

Nein. PostgreSQL Eine bestehende Einschränkung kann nicht geändert werden. Löschen Sie die vorhandene Einschränkung mit DROP CONSTRAINT und fügen Sie anschließend die korrigierte Einschränkung mit ADD CONSTRAINT hinzu. Schließen Sie beide Anweisungen in eine Transaktion ein, damit die Tabelle stets die Regel behält.

Listen Sie mehrere Aktionen durch Kommas getrennt auf: ALTER TABLE Book ADD COLUMN price int, ADD COLUMN isbn text. PostgreSQL wendet jede Änderung in einem einzigen Durchlauf an, was schneller ist und die Tabelle konsistent hält.

Verwenden Sie ALTER TABLE Tabellenname ADD PRIMARY KEY (Spalte) oder ADD CONSTRAINT pk_name PRIMARY KEY (Spalte). Die Spalte muss eindeutige, nicht-null Werte enthalten; PostgreSQL Erstellt automatisch einen zugehörigen eindeutigen Index, wenn der Schlüssel erstellt wird.

Der Befehl RENAME aktualisiert lediglich den Tabellennamen im Systemkatalog. Gespeicherte Zeilen, Indizes und Einschränkungen bleiben erhalten und sind nicht betroffen. Sichten oder Funktionen, die auf den alten Namen verweisen, müssen möglicherweise anschließend aktualisiert werden.

KI-Assistenten erstellen ALTER TABLE-Skripte anhand einer beschriebenen Änderung, ordnen ADD-, RENAME- und Constraint-Schritte korrekt an und fügen USING-Klauseln für Typumwandlungen hinzu. Sie kennzeichnen außerdem Operationen, die große Tabellen überschreiben oder umfangreiche Sperren setzen.

Ja. Ein KI-Copilot prüft eine Migration, warnt vor Sperrungen oder vollständigen Tabellenüberschreibungen, schlägt Batch-Verarbeitung oder parallele Indexerstellung vor und empfiehlt Wrapping.ping Änderungen in einer Transaktion, wodurch Schema-Aktualisierungen sicherer bereitgestellt werden können.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: