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 .
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.
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.
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.
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.
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.
Ha a táblázatot psql-ben szeretnénk látni, akkor az alábbi parancsot használjuk
Javatpoint=# d Product;
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:
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.
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.
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: