Šajā sadaļā mēs apspriedīsim, kā mēs varam nometiet kolonnas ar palīdzību MAINĪT TABLU komandu.
PostgreSQL DROP COLUMN komanda
Mēs izmantosim nosacījumu DROP COLUMN komandā ALTER TABLE, lai nomestu tabulas kolonnu:
ALTER TABLE table_name DROP COLUMN column_name;
PostgreSQL automātiski izdzēsīs visus savus ierobežojumus un indeksus, tostarp kolonnu, vienlaikus dzēšot kolonnu no tabulas, un katrs nolaižamās kolonnas nosacījums tiek atdalīts ar komats (,) .
Mēs nevaram izdzēst tās kolonnas, kur citi objekti ir atkarīgi no tiem un tiek izmantoti arī citos datu bāzes objektos, piemēram trigeri, skati, saglabātās procedūras, utt.
tīkls un tīklu veidi
Tātad, lai noņemtu šīs kolonnas un visus ar to saistītos objektus, mēs izmantosim KASKĀDE opcija sadaļā pilienu kolonna komandu šādi:
ALTER TABLE table_name DROP COLUMN column_name CASCADE;
Ja vēlamies dzēst neesošu kolonnu, PostgreSQL radīs problēmu. Mēs pievienosim nosacījumu JA EXISTS nolaižamās kolonnas komandā, lai pārvarētu šo kļūdu, kā redzams tālāk esošajā komandā:
ALTER TABLE table_name DROP COLUMN IF EXISTS column_name;
Iepriekš minētajā komandā, ja mēs izdzēšam kolonnu, kas neeksistē, PostgreSQL parādīs paziņojumu, nevis kļūdu.
Mēs izmantosim tālāk norādīto komandu, ja mums vajadzēs noņemt dažādas tabulas kolonnas vienā komandā:
ALTER TABLE table_name DROP COLUMN column_name_1, DROP COLUMN column_name_2;
PostgreSQL DROP COLUMN komandas piemēri
Apskatīsim dažus piemērus, lai saprastu, kā darbojas MAINĪT TABULA KRIENU SLEJU komandu.
Tātad, mēs izveidosim trīs dažādas tabulas, piemēram, Produkts, kategorijas un zīmols .
Iepriekš redzamajā diagrammā katrs Produkts satur tikai vienu Zīmols , un katram zīmolam var būt vairāki produkti. Katrs produkts ir piešķirts a kategorijā , un katrā kategorijā var būt dažādi produkti.
Lai izveidotu trīs tabulas, tiek izmantotas šādas komandas (Kategorijas, produkts un zīmols) :
Izveidojot Kategorijas tabula ar tālāk norādītās komandas palīdzību:
nfa konvertēšana uz dfa
CREATE TABLE Categories ( Cate_id serial PRIMARY KEY, Cate_name VARCHAR NOT NULL );
Izvade
Pēc iepriekš minētās komandas izpildes mēs saņemsim zemāk redzamo ziņojumu; uz Kategorijas tabula ir izveidota.
Izveidojot Produkts tabulu, izmantojot šādu paziņojumu:
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) );
Izvade
Pēc iepriekš minētās komandas izpildes mēs saņemsim zemāk redzamo ziņojumu; uz Produkts tabula ir izveidota.
Izveidojot Zīmols tabulu, izmantojot šādu komandu:
CREATE TABLE Brand ( Brand_id serial PRIMARY KEY, Brand_name VARCHAR NOT NULL );
Izvade
Pēc iepriekš minētās komandas izpildes mēs saņemsim zemāk redzamo ziņojumu; uz Zīmols tabula ir izveidota.
kas ir ziemas guļas režīms
Turklāt mēs izveidojam skatu, pamatojoties uz Produkts un Zīmols tabulas šādi:
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;
Izvade
Pēc iepriekš minētās komandas izpildes mēs saņemsim zemāk redzamo ziņojumu; uz Product_info skats ir izveidots.
Mēs izmantosim šādu komandu, ja vēlēsimies dzēst cat_id kolonna Produkts tabula:
ALTER TABLE Product DROP COLUMN cate_id;
Izvade
Pēc iepriekš minētās komandas izpildes mēs saņemsim zemāk redzamo ziņojumu; uz cat_id kolonna nokrita no Produkts tabula.
Ja mēs vēlamies redzēt tabulu psql, mēs izmantosim tālāk norādīto komandu
Javatpoint=# d Product;
Kā redzams iepriekš redzamajā ekrānuzņēmumā, iepriekš minētā komanda dzēš Cate_id kolonna un ietver Kategorijas_id kolonnu ārējās atslēgas ierobežojumā.
Tagad mēs mēģināsim atmest Brand_id kolonna no Produkts tabula.
ALTER TABLE Product DROP COLUMN Brand_id;
Kad mēs izpildīsim iepriekš minēto komandu, PostgreSQL parādīs tālāk norādīto kļūdu:
Tajā teikts, ka product_info skats izmanto kolonnu Brand_id no Produkts tabula.
garš līdz stīgai
Tātad, mēs izmantosim kaskāde iespēja dzēst abus Brand_id kolonnu un Product_info skatīt ar tālāk norādītās komandas palīdzību:
ALTER TABLE Product DROP COLUMN Brand_id CASCADE;
Kad mēs ieviesīsim iepriekš minēto komandu, tā paaugstinās tālāk norādīto paziņojums un nometiet konkrēto kolonnu.
Šeit mēs atmetīsim abus saraksta_cena un modeļa_gads kolonnas vienā komandā, un mums ir jāizmanto vairākas DROP COLUMN nosacījumi, kā mēs to darījām zemāk:
ALTER TABLE Product DROP COLUMN List_Price, DROP COLUMN Model_year;
Izvade
Pēc iepriekš minētās komandas izpildes mēs saņemsim zemāk redzamo ziņojuma logu: The Kolonnas List_price un Model_year ir izņemti no Produkts tabula.
Ja vēlamies, lai iepriekš minētās darbības darbojas labi vai nē, mēs izmantosim Izvēlieties komanda:
Select * from Product ;
Izvade
Pēc iepriekš minētās komandas izpildes mēs saņemsim tālāk norādīto izvadi: