PostgreSQL Drop stolpec

PostgreSQL Drop stolpec

V tem razdelku bomo razpravljali o tem, kako lahko spustite stolpce s pomočjo SPREMENI TABELO ukaz.

PostgreSQL ukaz DROP COLUMN

Uporabili bomo pogoj DROP COLUMN v ukazu ALTER TABLE za izpuščanje stolpca tabele:

 ALTER TABLE table_name DROP COLUMN column_name;  

PostgreSQL bo med brisanjem stolpca iz tabele samodejno izbrisal vse svoje omejitve in indekse, vključno s stolpcem, vsak pogoj za izpust stolpca pa je ločen z vejica (,) .

Ne moremo izbrisati tistih stolpcev, kjer so drugi objekti odvisni od njih in se uporabljajo tudi v drugih objektih baze podatkov, kot je sprožilci, pogledi, shranjene procedure, itd.

Torej, za odstranitev teh stolpcev in vseh povezanih objektov bomo uporabili KASKADA možnost v spustite stolpec ukaz kot sledi:

 ALTER TABLE table_name DROP COLUMN column_name CASCADE;  

Če želimo izbrisati neobstoječi stolpec, bo PostgreSQL sprožil težavo. Dodali bomo pogoj IF EXISTS v ukaz drop column, da bi odpravili to napako, kot lahko vidimo v spodnjem ukazu:

 ALTER TABLE table_name DROP COLUMN IF EXISTS column_name;  

Če v zgornjem ukazu izbrišemo stolpec, ki ne obstaja, bo PostgreSQL prikazal obvestilo in ne napako.

Spodnji ukaz bomo uporabili, če bomo morali odstraniti različne stolpce tabele v enem ukazu:

 ALTER TABLE table_name DROP COLUMN column_name_1, DROP COLUMN column_name_2;  

Primeri ukaza PostgreSQL DROP COLUMN

Oglejmo si nekaj primerov za razumevanje delovanja SPREMENI STOLPEC TABELE ukaz.

Ustvarili bomo torej tri različne tabele, kot npr Izdelek, kategorije in blagovna znamka .

PostgreSQL Drop stolpec

V zgornjem diagramu vsak Izdelek vsebuje samo eno znamka , vsaka znamka pa ima lahko več izdelkov. Vsak izdelek je dodeljen a kategorijo , vsaka kategorija pa ima lahko različne izdelke.

Naslednji ukazi se uporabljajo za ustvarjanje treh tabel (Kategorije, izdelek in blagovna znamka) :

Ustvarjanje kategorije tabelo s pomočjo spodnjega ukaza:

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

Izhod

Po izvedbi zgornjega ukaza bomo prejeli spodnje sporočilo; the kategorije tabela je ustvarjena.

PostgreSQL Drop stolpec

Ustvarjanje Izdelek tabelo z naslednjim stavkom:

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

Izhod

Po izvedbi zgornjega ukaza bomo prejeli spodnje sporočilo; the Izdelek tabela je ustvarjena.

PostgreSQL Drop stolpec

Ustvarjanje Znamka tabelo z naslednjim ukazom:

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

Izhod

Po izvedbi zgornjega ukaza bomo prejeli spodnje sporočilo; the Znamka tabela je ustvarjena.

PostgreSQL Drop stolpec

Poleg tega ustvarimo pogled na podlagi Izdelek in Znamka tabele, kot sledi:

 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;  

Izhod

Po izvedbi zgornjega ukaza bomo prejeli spodnje sporočilo; the Product_info pogled je bil ustvarjen.

PostgreSQL Drop stolpec

Uporabili bomo naslednji ukaz, če želimo izbrisati cate_id stolpec od Izdelek tabela:

 ALTER TABLE Product DROP COLUMN cate_id;  

Izhod

Po izvedbi zgornjega ukaza bomo prejeli spodnje sporočilo; the cate_id stolpec padel iz Izdelek tabela.

PostgreSQL Drop stolpec

Če želimo videti tabelo v psql, bomo uporabili spodnji ukaz

 Javatpoint=# d Product;  

PostgreSQL Drop stolpec

Kot lahko vidimo na zgornjem posnetku zaslona, ​​zgornji ukaz izbriše Stolpec Cate_id in vključuje Cate_id v omejitev tujega ključa.

Zdaj bomo poskušali opustiti Brand_id stolpec iz Izdelek tabela.

 ALTER TABLE Product DROP COLUMN Brand_id;  

Ko izvedemo zgornji ukaz, bo PostgreSQL prikazal spodnjo napako:

PostgreSQL Drop stolpec

Navedlo je, da je product_info pogled uporablja stolpec Brand_id od Izdelek tabela.

Uporabili bomo torej kaskada možnost izbrisa obeh Brand_id stolpec in Product_info ogled s pomočjo spodnjega ukaza:

 ALTER TABLE Product DROP COLUMN Brand_id CASCADE;  

Ko izvedemo zgornji ukaz, bo dvignil spodnji opaziti in spustite določen stolpec.

PostgreSQL Drop stolpec

Tukaj bomo spustili oba maloprodajna_cena in Model_year stolpcev v enem samem ukazu in moramo uporabiti večkratni DROP COLUMN pogoje, kot smo naredili spodaj:

 ALTER TABLE Product DROP COLUMN List_Price, DROP COLUMN Model_year;  

Izhod

Po izvedbi zgornjega ukaza bomo dobili spodnje okno s sporočilom: The Stolpca List_price in Model_year so bili izpuščeni iz Izdelek tabela.

PostgreSQL Drop stolpec

Če želimo videti, ali zgornje operacije delujejo dobro ali ne, bomo uporabili Izberite ukaz:

 Select * from Product ;  

Izhod

Po izvedbi zgornjega ukaza bomo dobili spodnji rezultat:

PostgreSQL Drop stolpec