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 .
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.
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.
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.
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.
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.
Če želimo videti tabelo v psql, bomo uporabili spodnji ukaz
Javatpoint=# d Product;
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:
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.
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.
Č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: