In dit gedeelte gaan we bespreken hoe we dat kunnen doen laat de kolommen vallen met behulp van de WIJZIG TABEL commando.
PostgreSQL DROP COLUMN-opdracht
We zullen de DROP COLUMN-voorwaarde in het ALTER TABLE-commando gebruiken om een kolom van een tabel te verwijderen:
ALTER TABLE table_name DROP COLUMN column_name;
PostgreSQL verwijdert automatisch alle beperkingen en indexen, inclusief de kolom, terwijl een kolom uit een tabel wordt verwijderd, en elke kolomvoorwaarde wordt gescheiden door een komma (,) .
We kunnen die kolommen niet verwijderen waarvan de andere objecten afhankelijk zijn en ook worden gebruikt in andere databaseobjecten zoals triggers, weergaven, opgeslagen procedures, enz.
Voor het verwijderen van die kolommen en alle daarmee verbonden objecten gebruiken we dus de CASCADE optie in de kolom laten vallen opdracht als volgt:
java-arraylijst
ALTER TABLE table_name DROP COLUMN column_name CASCADE;
Als we een niet-bestaande kolom willen verwijderen, zal PostgreSQL een probleem oproepen. We zullen de IF EXISTS-voorwaarde toevoegen aan de drop-kolomopdracht om deze fout te verhelpen, zoals we kunnen zien in de onderstaande opdracht:
ALTER TABLE table_name DROP COLUMN IF EXISTS column_name;
Als we in de bovenstaande opdracht een kolom verwijderen die niet bestaat, geeft PostgreSQL een melding in plaats van een fout.
We zullen de onderstaande opdracht gebruiken als we de verschillende kolommen van een tabel in één opdracht willen verwijderen:
ALTER TABLE table_name DROP COLUMN column_name_1, DROP COLUMN column_name_2;
Voorbeelden van PostgreSQL DROP COLUMN-opdracht
Laten we enkele voorbeelden bekijken om de werking van de WIJZIG TAFEL DALINGSKOLOM commando.
We gaan dus drie verschillende tabellen maken, zoals Product, categorieën en merk .
In het bovenstaande diagram is elk Product bevat er slechts één merk , en elk merk kan meerdere producten hebben. Elk product is toegewezen aan een categorie , en elke categorie kan verschillende producten bevatten.
De volgende opdrachten worden gebruikt om de drie tabellen te maken (Categorieën, product en merk) :
Het creëren van de Categorieën tabel met behulp van het onderstaande commando:
CREATE TABLE Categories ( Cate_id serial PRIMARY KEY, Cate_name VARCHAR NOT NULL );
Uitvoer
Na het uitvoeren van de bovenstaande opdracht krijgen we het onderstaande bericht; de Categorieën tabel is gemaakt.
Het creëren van de Product tabel met behulp van de volgende verklaring:
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) );
Uitvoer
Na het uitvoeren van de bovenstaande opdracht krijgen we het onderstaande bericht; de Product tabel is gemaakt.
Het creëren van de Merk tabel met behulp van de volgende opdracht:
CREATE TABLE Brand ( Brand_id serial PRIMARY KEY, Brand_name VARCHAR NOT NULL );
Uitvoer
Na het uitvoeren van de bovenstaande opdracht krijgen we het onderstaande bericht; de Merk tabel is gemaakt.
Daarnaast creëren wij een weergave op basis van de Product En Merk tabellen als volgt:
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;
Uitvoer
Na het uitvoeren van de bovenstaande opdracht krijgen we het onderstaande bericht; de Product informatie weergave is gemaakt.
We zullen de volgende opdracht gebruiken als we de categorie_id kolom van de Product tafel:
1 t/m 100 romeins nr
ALTER TABLE Product DROP COLUMN cate_id;
Uitvoer
Na het uitvoeren van de bovenstaande opdracht krijgen we het onderstaande bericht; de categorie_id kolom verwijderd uit de Product tafel.
laatste trefwoord in Java
Als we de tabel in psql willen zien, gebruiken we de onderstaande opdracht
Javatpoint=# d Product;
Zoals we in de bovenstaande schermafbeelding kunnen zien, verwijdert de bovenstaande opdracht de Kolom Cate_id en omvat de Categorie_id kolom in de externe sleutelbeperking.
Nu zullen we proberen de Merk_id kolom uit de Product tafel.
ALTER TABLE Product DROP COLUMN Brand_id;
Zodra we de bovenstaande opdracht uitvoeren, zal PostgreSQL de onderstaande fout genereren:
Hierin stond dat de product informatie weergave gebruikt de kolom Merk_id van de Product tafel.
We zullen dus gebruik maken van de cascade optie om beide te verwijderen Merk_id kolom en Product informatie bekijk met de hulp van het onderstaande commando:
ALTER TABLE Product DROP COLUMN Brand_id CASCADE;
Zodra we het bovenstaande commando implementeren, wordt het onderstaande weergegeven kennisgeving en laat de betreffende kolom vallen.
Hier laten we beide vallen list_price en Model_year kolommen in één enkele opdracht, en we moeten de meerdere DROP-KOLOM omstandigheden zoals we hieronder deden:
ALTER TABLE Product DROP COLUMN List_Price, DROP COLUMN Model_year;
Uitvoer
Na het uitvoeren van de bovenstaande opdracht krijgen we het onderstaande berichtvenster: The Kolommen List_price en Model_year zijn verwijderd uit de Product tafel.
Als we willen zien dat de bovenstaande bewerkingen goed werken of niet, gebruiken we de Selecteer commando:
Select * from Product ;
Uitvoer
Na het uitvoeren van de bovenstaande opdracht krijgen we de onderstaande uitvoer: