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 (,) .
java skús chytiť
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.
terminál kali linux
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
panda topiť
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
while a do while v jave
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.
formátovač reťazcov
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: