In diesem Abschnitt werden wir diskutieren, wie wir das können Lassen Sie die Spalten fallen mit Hilfe der TABELLE ÄNDERN Befehl.
PostgreSQL DROP COLUMN-Befehl
Wir verwenden die Bedingung DROP COLUMN im Befehl ALTER TABLE, um eine Spalte einer Tabelle zu löschen:
Datenstrukturen in Java
ALTER TABLE table_name DROP COLUMN column_name;
PostgreSQL löscht beim Löschen einer Spalte aus einer Tabelle automatisch alle seine Einschränkungen und Indizes, einschließlich der Spalte, und jede Bedingung zum Löschen einer Spalte wird durch ein getrennt Komma (,) .
Wir können die Spalten nicht löschen, von denen die anderen Objekte abhängen und die auch in anderen Datenbankobjekten verwendet werden, z Trigger, Ansichten, gespeicherte Prozeduren, usw.
Um diese Spalten und alle damit verbundenen Objekte zu entfernen, verwenden wir die KASKADE Option in der Drop-Spalte Befehl wie folgt:
ALTER TABLE table_name DROP COLUMN column_name CASCADE;
Wenn wir eine nicht vorhandene Spalte löschen möchten, wirft PostgreSQL ein Problem auf. Wir werden die Bedingung IF EXISTS im Befehl zum Löschen der Spalte hinzufügen, um diesen Fehler zu beheben, wie wir im folgenden Befehl sehen können:
ALTER TABLE table_name DROP COLUMN IF EXISTS column_name;
Wenn wir im obigen Befehl eine Spalte löschen, die nicht existiert, gibt PostgreSQL einen Hinweis und keinen Fehler aus.
Wir verwenden den folgenden Befehl, wenn wir die verschiedenen Spalten einer Tabelle in einem einzigen Befehl entfernen müssen:
ALTER TABLE table_name DROP COLUMN column_name_1, DROP COLUMN column_name_2;
Beispiele für den PostgreSQL-Befehl DROP COLUMN
Sehen wir uns einige Beispiele an, um die Funktionsweise zu verstehen TABELLE DROP-SÄULE ÄNDERN Befehl.
Wir werden also drei verschiedene Tabellen erstellen, z Produkt, Kategorien und Marke .
Im obigen Diagramm jeweils Produkt enthält nur einen Marke , und jede Marke kann mehrere Produkte haben. Jedes Produkt ist einem zugeordnet Kategorie , und jede Kategorie kann verschiedene Produkte enthalten.
Die folgenden Befehle werden zum Erstellen der drei Tabellen verwendet (Kategorien, Produkt und Marke) :
Erstellen der Kategorien Tabelle mit Hilfe des folgenden Befehls:
CREATE TABLE Categories ( Cate_id serial PRIMARY KEY, Cate_name VARCHAR NOT NULL );
Ausgabe
Nachdem wir den obigen Befehl ausgeführt haben, erhalten wir die folgende Meldung; Die Kategorien Tabelle wurde erstellt.
Erstellen der Produkt Tabelle mit der folgenden Anweisung:
CREATE TABLE Product ( Pro_id serial PRIMARY KEY, Pro_name VARCHAR NOT NULL, Brand_id INT NOT NULL, Cate_id INT NOT NULL, List_price DECIMAL NOT NULL, Model_year SMALLINT NOT NULL, FOREIGN KEY (Cate_id) REFERENCES Categories (Cate_id), FOREIGN KEY (Brand_id) REFERENCES Brand (Brand_id) );
Ausgabe
Nachdem wir den obigen Befehl ausgeführt haben, erhalten wir die folgende Meldung; Die Produkt Tabelle wurde erstellt.
Erstellen der Marke Tabelle mit dem folgenden Befehl:
CREATE TABLE Brand ( Brand_id serial PRIMARY KEY, Brand_name VARCHAR NOT NULL );
Ausgabe
Nachdem wir den obigen Befehl ausgeführt haben, erhalten wir die folgende Meldung; Die Marke Tabelle wurde erstellt.
Außerdem erstellen wir eine Ansicht basierend auf Produkt Und Marke Tabellen wie folgt:
CREATE VIEW Product_info AS SELECT Pro_id, Pro_name, Brand_name FROM Product p INNER JOIN Brand B ON B .Brand_id = p.Brand_id ORDER BY Pro_name;
Ausgabe
Nachdem wir den obigen Befehl ausgeführt haben, erhalten wir die folgende Meldung; Die Produktinformation Ansicht wurde erstellt.
Wir verwenden den folgenden Befehl, wenn wir das löschen möchten cate_id Spalte der Produkt Tisch:
ALTER TABLE Product DROP COLUMN cate_id;
Ausgabe
Nachdem wir den obigen Befehl ausgeführt haben, erhalten wir die folgende Meldung; Die cate_id Spalte aus dem entfernt Produkt Tisch.
Wenn wir die Tabelle in psql sehen möchten, verwenden wir den folgenden Befehl
Javatpoint=# d Product;
Wie wir im obigen Screenshot sehen können, löscht der obige Befehl die Cate_id-Spalte und beinhaltet die Cate_id Spalte in die Fremdschlüsseleinschränkung.
Jetzt werden wir versuchen, das fallen zu lassen Brand_id Spalte aus dem Produkt Tisch.
ALTER TABLE Product DROP COLUMN Brand_id;
Sobald wir den obigen Befehl ausführen, löst PostgreSQL den folgenden Fehler aus:
Darin hieß es, dass die Produktinformation Die Ansicht verwendet die Spalte Brand_id des Produkt Tisch.
Also werden wir das verwenden Kaskade Option zum Löschen beider Brand_id Spalte und Produktinformation Ansicht mit der Hilfe des folgenden Befehls:
ALTER TABLE Product DROP COLUMN Brand_id CASCADE;
Sobald wir den obigen Befehl implementieren, wird das Folgende ausgelöst beachten und löschen Sie die jeweilige Spalte.
Hier werden wir beide fallen lassen list_price und Model_year Spalten in einem einzigen Befehl, und wir müssen die verwenden mehrere DROP COLUMN Bedingungen, wie wir es unten getan haben:
ALTER TABLE Product DROP COLUMN List_Price, DROP COLUMN Model_year;
Ausgabe
Nachdem wir den obigen Befehl ausgeführt haben, erhalten wir das folgende Meldungsfenster: The Spalten „List_price“ und „Model_year“. wurden aus dem entfernt Produkt Tisch.
Wenn wir sehen möchten, dass die oben genannten Vorgänge einwandfrei funktionieren oder nicht, verwenden wir die Wählen Befehl:
Select * from Product ;
Ausgabe
Java-Objekt
Nachdem wir den obigen Befehl ausgeführt haben, erhalten wir die folgende Ausgabe: