logo

PostgreSQL Drop oszlop

Ebben a részben megbeszéljük, hogyan lehet dobd le az oszlopokat segítségével a ALTER TABLE parancs.

PostgreSQL DROP COLUMN parancs

Az ALTER TABLE parancsban a DROP COLUMN feltételt használjuk egy táblázat oszlopának eldobásához:

 ALTER TABLE table_name DROP COLUMN column_name; 

A PostgreSQL automatikusan törli az összes megszorítását és indexét, beleértve az oszlopot is, miközben töröl egy oszlopot a táblából, és minden eldobási oszlopfeltételt egy vessző (,) .

Nem tudjuk törölni azokat az oszlopokat, ahol a többi objektum tőlük függ, és más adatbázis-objektumokban is használatos, mint pl triggerek, nézetek, tárolt eljárások, stb.

Tehát az oszlopok és az összes kapcsolódó objektum eltávolításához a VÍZESÉS opció a csepp oszlop parancsot a következőképpen:

 ALTER TABLE table_name DROP COLUMN column_name CASCADE; 

Ha nem létező oszlopot akarunk törölni, a PostgreSQL problémát vet fel. Hozzáadjuk az IF EXISTS feltételt a drop oszlop parancshoz, hogy túlléphessünk ezen a hibán, amint azt az alábbi parancsban láthatjuk:

 ALTER TABLE table_name DROP COLUMN IF EXISTS column_name; 

A fenti parancsban, ha törölünk egy oszlopot, amely nem létezik, a PostgreSQL inkább figyelmeztetést ad, mint hibát.

ábécé számok

Az alábbi parancsot használjuk, ha egyetlen paranccsal el kell távolítanunk a táblázat különböző oszlopait:

 ALTER TABLE table_name DROP COLUMN column_name_1, DROP COLUMN column_name_2; 

Példák a PostgreSQL DROP COLUMN parancsra

Nézzünk néhány példát, hogy megértsük a működését ALTER TABLE Drop OSZLOP parancs.

Tehát három különböző táblát fogunk létrehozni, mint pl Termék, kategóriák és márka .

PostgreSQL Drop oszlop

A fenti diagramon mindegyik Termék csak egyet tartalmaz márka , és minden márkának több terméke is lehet. Minden termék hozzá van rendelve a kategória , és minden kategóriában különböző termékek lehetnek.

A következő parancsokat használjuk a három tábla létrehozásához (Kategóriák, Termékek és Márka) :

Létrehozása a Kategóriák táblázat az alábbi parancs segítségével:

 CREATE TABLE Categories ( Cate_id serial PRIMARY KEY, Cate_name VARCHAR NOT NULL ); 

Kimenet

A fenti parancs végrehajtása után az alábbi üzenetet kapjuk; a Kategóriák táblázat létrehozva.

PostgreSQL Drop oszlop

Létrehozása a Termék táblázat a következő utasítással:

 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) ); 

Kimenet

A fenti parancs végrehajtása után az alábbi üzenetet kapjuk; a Termék táblázat létrehozva.

PostgreSQL Drop oszlop

Létrehozása a Márka táblázat a következő paranccsal:

 CREATE TABLE Brand ( Brand_id serial PRIMARY KEY, Brand_name VARCHAR NOT NULL ); 

Kimenet

A fenti parancs végrehajtása után az alábbi üzenetet kapjuk; a Márka táblázat létrehozva.

PostgreSQL Drop oszlop

Ezen kívül nézetet készítünk a Termék és Márka táblázatok az alábbiak szerint:

 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; 

Kimenet

A fenti parancs végrehajtása után az alábbi üzenetet kapjuk; a Termék információ nézet létrejött.

PostgreSQL Drop oszlop

A következő parancsot fogjuk használni, ha törölni akarjuk a cate_id oszlopa a Termék asztal:

 ALTER TABLE Product DROP COLUMN cate_id; 

Kimenet

A fenti parancs végrehajtása után az alábbi üzenetet kapjuk; a cate_id oszlop leesett a Termék asztal.

PostgreSQL Drop oszlop

Ha a táblázatot psql-ben szeretnénk látni, akkor az alábbi parancsot használjuk

 Javatpoint=# d Product; 

PostgreSQL Drop oszlop

Amint a fenti képernyőképen láthatjuk, a fenti parancs törli a Cate_id oszlop és magában foglalja a Cate_id oszlopba az idegen kulcs megszorításába.

különbség a vacsora és a vacsora között

Most megpróbáljuk eldobni a Brand_id oszlopból a Termék asztal.

 ALTER TABLE Product DROP COLUMN Brand_id; 

Miután végrehajtottuk a fenti parancsot, a PostgreSQL az alábbi hibát veti fel:

PostgreSQL Drop oszlop

Az állt benne, hogy a termék információ nézet az oszlopot használja Brand_id a Termék asztal.

Tehát használni fogjuk a vízesés lehetőség mind a törlésére Brand_id oszlop és Termék információ tekintse meg az alábbi parancs segítségével:

 ALTER TABLE Product DROP COLUMN Brand_id CASCADE; 

Miután végrehajtottuk a fenti parancsot, az alább látható értesítés és dobja el az adott oszlopot.

PostgreSQL Drop oszlop

Itt hagyjuk mindkét listaár és Modell_év oszlopokat egyetlen parancsban, és használnunk kell a többszörös DROP OSZLOP feltételek, ahogy az alábbiakban tettük:

 ALTER TABLE Product DROP COLUMN List_Price, DROP COLUMN Model_year; 

Kimenet

A fenti parancs végrehajtása után az alábbi üzenet ablakot kapjuk: The Lista_ár és Modell_év oszlopok kiestek a Termék asztal.

PostgreSQL Drop oszlop

Ha látni akarjuk, hogy a fenti műveletek jól működnek-e vagy sem, akkor a Válassza ki parancs:

 Select * from Product ; 

Kimenet

A fenti parancs végrehajtása után az alábbi kimenetet kapjuk:

PostgreSQL Drop oszlop