Stĺpec PostgreSQL Drop
V tejto časti budeme diskutovať o tom, ako môžeme vypustite stĺpce s pomocou ALTER TABLE príkaz.
Príkaz PostgreSQL DROP COLUMN
Na zrušenie stĺpca tabuľky použijeme podmienku DROP COLUMN v príkaze ALTER TABLE:
ALTER TABLE table_name DROP COLUMN column_name;
PostgreSQL automaticky odstráni všetky svoje obmedzenia a indexy, vrátane stĺpca pri odstraňovaní stĺpca z tabuľky, a každá podmienka spusteného stĺpca je oddelená znakom čiarka (,) .
Nemôžeme vymazať tie stĺpce, kde na nich závisia ostatné objekty a ktoré sa používajú aj v iných databázových objektoch, napr spúšťače, pohľady, uložené procedúry, atď.
Takže na odstránenie týchto stĺpcov a všetkých ich pripojených objektov použijeme KASCADE možnosť v klesnúť stĺpec príkaz takto:
ALTER TABLE table_name DROP COLUMN column_name CASCADE;
Ak chceme odstrániť neexistujúci stĺpec, PostgreSQL vyvolá problém. Do príkazu drop column pridáme podmienku IF EXISTS, aby sme túto chybu prekonali, ako môžeme vidieť v príkaze nižšie:
ALTER TABLE table_name DROP COLUMN IF EXISTS column_name;
Ak vo vyššie uvedenom príkaze odstránime stĺpec, ktorý neexistuje, PostgreSQL zobrazí skôr upozornenie ako chybu.
Nasledujúci príkaz použijeme, ak potrebujeme odstrániť rôzne stĺpce tabuľky v jednom príkaze:
ALTER TABLE table_name DROP COLUMN column_name_1, DROP COLUMN column_name_2;
Príklady príkazu PostgreSQL DROP COLUMN
Pozrime sa na niekoľko príkladov, aby sme pochopili fungovanie ALTER TABLE DOP STĹPEC príkaz.
Vytvoríme si teda tri rôzne tabuľky, ako napr Produkt, kategórie a značka .
Vo vyššie uvedenom diagrame každý Produkt obsahuje iba jeden značka a každá značka môže mať niekoľko produktov. Každý produkt je priradený k a kategórii a každá kategória môže mať rôzne produkty.
Na vytvorenie troch tabuliek sa používajú nasledujúce príkazy (Kategórie, Produkt a Značka) :
Vytvorenie Kategórie tabuľky pomocou nižšie uvedeného príkazu:
CREATE TABLE Categories ( Cate_id serial PRIMARY KEY, Cate_name VARCHAR NOT NULL );
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme nižšie uvedenú správu; na Kategórie tabuľka bola vytvorená.
Vytvorenie Produkt tabuľky pomocou nasledujúceho vyhlásenia:
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) );
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme nižšie uvedenú správu; na Produkt tabuľka bola vytvorená.
Vytvorenie Značka tabuľky pomocou nasledujúceho príkazu:
CREATE TABLE Brand ( Brand_id serial PRIMARY KEY, Brand_name VARCHAR NOT NULL );
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme nižšie uvedenú správu; na Značka tabuľka bola vytvorená.
Okrem toho vytvárame pohľad na základe Produkt a Značka tabuľky takto:
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;
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme nižšie uvedenú správu; na Informácie o produkte pohľad bol vytvorený.
Ak chceme odstrániť súbor, použijeme nasledujúci príkaz cat_id stĺpec Produkt tabuľka:
ALTER TABLE Product DROP COLUMN cate_id;
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme nižšie uvedenú správu; na cat_id stĺpec vypadol z Produkt tabuľky.
Ak chceme tabuľku vidieť v psql, použijeme nižšie uvedený príkaz
Javatpoint=# d Product;
Ako môžeme vidieť na obrázku vyššie, vyššie uvedený príkaz odstráni súbor stĺpec Cate_id a zahŕňa Cate_id do obmedzenia cudzieho kľúča.
Teraz sa pokúsime zahodiť Brand_id stĺpec z Produkt tabuľky.
ALTER TABLE Product DROP COLUMN Brand_id;
Po vykonaní vyššie uvedeného príkazu PostgreSQL vyvolá nasledujúcu chybu:
Uvádzalo sa v ňom, že info o produkte zobrazenie používa stĺpec Brand_id z Produkt tabuľky.
Takže použijeme kaskáda možnosť vymazať oboje Brand_id stĺpec a Informácie o produkte zobraziť pomocou nižšie uvedeného príkazu:
ALTER TABLE Product DROP COLUMN Brand_id CASCADE;
Akonáhle implementujeme vyššie uvedený príkaz, vyvolá to nižšie upozorniť a vypustite konkrétny stĺpec.
Tu zahodíme oboje katalógová_cena a Model_rok stĺpce v jednom príkaze a musíme použiť viacnásobný DROP STĹPEC podmienky, ako sme urobili nižšie:
ALTER TABLE Product DROP COLUMN List_Price, DROP COLUMN Model_year;
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme nižšie uvedené okno so správou: The Stĺpce List_price a Model_year boli vypustené z Produkt tabuľky.
Ak chceme vidieť, či vyššie uvedené operácie fungujú dobre alebo nie, použijeme Vyberte príkaz:
Select * from Product ;
Výkon
Po vykonaní vyššie uvedeného príkazu dostaneme nasledujúci výstup: