I denne delen skal vi diskutere hvordan vi kan slipp kolonnene ved hjelp av ENDRE TABELL kommando.
PostgreSQL DROP COLUMN-kommando
Vi vil bruke DROP COLUMN-betingelsen i ALTER TABLE-kommandoen for å slippe en kolonne i en tabell:
ALTER TABLE table_name DROP COLUMN column_name;
PostgreSQL vil automatisk slette alle sine begrensninger og indekser, inkludert kolonnen mens du sletter en kolonne fra en tabell, og hver slippkolonnebetingelse er atskilt med en komma (,) .
Vi kan ikke slette de kolonnene der de andre objektene er avhengige av dem og også brukes i andre databaseobjekter som utløsere, visninger, lagrede prosedyrer, etc.
Så for å fjerne disse kolonnene og alle de tilknyttede objektene, vil vi bruke CASCADE alternativet i slipp kolonne kommando som følger:
ALTER TABLE table_name DROP COLUMN column_name CASCADE;
Hvis vi ønsker å slette en ikke-eksisterende kolonne, vil PostgreSQL reise et problem. Vi vil legge til IF EXISTS-tilstanden i drop-kolonne-kommandoen for å komme over denne feilen som vi kan se i kommandoen nedenfor:
ALTER TABLE table_name DROP COLUMN IF EXISTS column_name;
I kommandoen ovenfor, hvis vi sletter en kolonne som ikke eksisterer, vil PostgreSQL sende et varsel i stedet for en feil.
Vi vil bruke kommandoen nedenfor hvis vi trenger å fjerne de forskjellige kolonnene i en tabell i en enkelt kommando:
ALTER TABLE table_name DROP COLUMN column_name_1, DROP COLUMN column_name_2;
Eksempler på PostgreSQL DROP COLUMN-kommando
La oss se noen eksempler for å forstå hvordan det fungerer ENDRE TABELL DROPPE-KOLONNE kommando.
Så vi vil lage tre forskjellige tabeller, som f.eks Produkt, kategorier og merke .
I diagrammet ovenfor, hver Produkt inneholder kun én merke , og hvert merke kan ha flere produkter. Hvert produkt er tildelt en kategori , og hver kategori kan ha ulike produkter.
xd betydning
Følgende kommandoer brukes til å lage de tre tabellene (Kategorier, produkt og merke) :
Oppretting av Kategorier tabell ved hjelp av kommandoen nedenfor:
CREATE TABLE Categories ( Cate_id serial PRIMARY KEY, Cate_name VARCHAR NOT NULL );
Produksjon
Etter å ha utført kommandoen ovenfor, vil vi få meldingen nedenfor; de Kategorier tabellen er opprettet.
Oppretting av Produkt tabell med følgende utsagn:
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) );
Produksjon
Etter å ha utført kommandoen ovenfor, vil vi få meldingen nedenfor; de Produkt tabellen er opprettet.
Oppretting av Merke tabell ved å bruke følgende kommando:
CREATE TABLE Brand ( Brand_id serial PRIMARY KEY, Brand_name VARCHAR NOT NULL );
Produksjon
Etter å ha utført kommandoen ovenfor, vil vi få meldingen nedenfor; de Merke tabellen er opprettet.
Dessuten lager vi et syn basert på Produkt og Merke tabeller som følger:
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;
Produksjon
Etter å ha utført kommandoen ovenfor, vil vi få meldingen nedenfor; de Produktinfo visningen er opprettet.
Vi vil bruke følgende kommando hvis vi ønsker å slette cate_id kolonne av Produkt bord:
ALTER TABLE Product DROP COLUMN cate_id;
Produksjon
Etter å ha utført kommandoen ovenfor, vil vi få meldingen nedenfor; de cate_id kolonne falt fra Produkt bord.
Hvis vi ønsker å se tabellen i psql, bruker vi kommandoen nedenfor
Javatpoint=# d Product;
Som vi kan se i skjermbildet ovenfor, sletter kommandoen ovenfor Cate_id-kolonnen og inkluderer Cate_id kolonne inn i fremmednøkkelbegrensningen.
Nå skal vi prøve å droppe Brand_id kolonne fra Produkt bord.
ALTER TABLE Product DROP COLUMN Brand_id;
Når vi utfører kommandoen ovenfor, vil PostgreSQL øke feilen nedenfor:
Den uttalte at produktinfo visningen bruker kolonnen Brand_id av Produkt bord.
Så vi vil bruke kaskade alternativet for å slette begge Brand_id kolonne og Produktinfo vis med hjelpen under kommandoen:
ALTER TABLE Product DROP COLUMN Brand_id CASCADE;
Når vi implementerer kommandoen ovenfor, vil den øke nedenstående legge merke til og slipp den aktuelle kolonnen.
Her vil vi droppe både listepris og modellår kolonner i en enkelt kommando, og vi må bruke flere DROPPE KOLONNE forhold som vi gjorde nedenfor:
ALTER TABLE Product DROP COLUMN List_Price, DROP COLUMN Model_year;
Produksjon
Etter å ha utført kommandoen ovenfor, vil vi få meldingsvinduet nedenfor: The Listepris og modellår kolonner har blitt droppet fra Produkt bord.
Hvis vi vil se at operasjonene ovenfor fungerer bra eller ikke, vil vi bruke Plukke ut kommando:
Select * from Product ;
Produksjon
Etter å ha utført kommandoen ovenfor, vil vi få utgangen nedenfor: