logo

PostgreSQL Drop-kolonne

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 .

PostgreSQL Drop-kolonne

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.

PostgreSQL Drop-kolonne

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.

PostgreSQL Drop-kolonne

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.

PostgreSQL Drop-kolonne

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.

PostgreSQL Drop-kolonne

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.

PostgreSQL Drop-kolonne

Hvis vi ønsker å se tabellen i psql, bruker vi kommandoen nedenfor

 Javatpoint=# d Product; 

PostgreSQL Drop-kolonne

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:

PostgreSQL Drop-kolonne

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.

PostgreSQL Drop-kolonne

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.

PostgreSQL Drop-kolonne

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:

PostgreSQL Drop-kolonne