logo

PostgreSQL Drop kolonne

I dette afsnit vil vi diskutere, hvordan vi kan slip kolonnerne ved hjælp af ÆNDRE TABEL kommando.

PostgreSQL DROP COLUMN Kommando

Vi vil bruge betingelsen DROP COLUMN i ALTER TABLE-kommandoen til at slette en kolonne i en tabel:

 ALTER TABLE table_name DROP COLUMN column_name; 

PostgreSQL vil automatisk slette alle dets begrænsninger og indekser, inklusive kolonnen, mens du sletter en kolonne fra en tabel, og hver dropkolonnebetingelse er adskilt af en komma (,) .

Vi kan ikke slette de kolonner, hvor de andre objekter afhænger af dem og også bruges i andre databaseobjekter som f.eks udløsere, visninger, lagrede procedurer, etc.

Så for at fjerne disse kolonner og alle dets forbundne objekter, vil vi bruge CASCADE mulighed i drop kolonne kommando som følger:

 ALTER TABLE table_name DROP COLUMN column_name CASCADE; 

Hvis vi ønsker at slette en ikke-eksisterende kolonne, vil PostgreSQL rejse et problem. Vi tilføjer betingelsen IF EXISTS i drop-kolonnekommandoen for at komme over med denne fejl, som vi kan se i nedenstående kommando:

 ALTER TABLE table_name DROP COLUMN IF EXISTS column_name; 

I ovenstående kommando, hvis vi sletter en kolonne, som ikke eksisterer, vil PostgreSQL rejse en meddelelse snarere end en fejl.

Vi vil bruge nedenstående kommando, hvis vi skal fjerne de forskellige kolonner i en tabel i en enkelt kommando:

 ALTER TABLE table_name DROP COLUMN column_name_1, DROP COLUMN column_name_2; 

Eksempler på PostgreSQL DROP COLUMN-kommando

Lad os se nogle eksempler for at forstå, hvordan den fungerer ÆNDRING AF TABEL DROP KOLONNE kommando.

Så vi vil oprette tre forskellige tabeller, som f.eks Produkt, kategorier og brand .

PostgreSQL Drop kolonne

I ovenstående diagram, hver Produkt indeholder kun én mærke , og hvert mærke kan have flere produkter. Hvert produkt er tildelt en kategori , og hver kategori kan have forskellige produkter.

xd betydning

Følgende kommandoer bruges til at oprette de tre tabeller (Kategorier, produkt og brand) :

Oprettelse af Kategorier tabel ved hjælp af nedenstående kommando:

 CREATE TABLE Categories ( Cate_id serial PRIMARY KEY, Cate_name VARCHAR NOT NULL ); 

Produktion

Efter at have udført ovenstående kommando, vil vi få nedenstående besked; det Kategorier tabel er blevet oprettet.

PostgreSQL Drop kolonne

Oprettelse af Produkt tabel ved hjælp af følgende sætning:

 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) ); 

Produktion

Efter at have udført ovenstående kommando, får vi nedenstående besked; det Produkt tabel er blevet oprettet.

PostgreSQL Drop kolonne

Oprettelse af Mærke tabel ved hjælp af følgende kommando:

 CREATE TABLE Brand ( Brand_id serial PRIMARY KEY, Brand_name VARCHAR NOT NULL ); 

Produktion

Efter at have udført ovenstående kommando, vil vi få nedenstående besked; det Mærke tabel er blevet oprettet.

PostgreSQL Drop kolonne

Desuden skaber vi et syn baseret på Produkt og Mærke 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; 

Produktion

Efter at have udført ovenstående kommando, får vi nedenstående besked; det Produktinfo visning er blevet oprettet.

PostgreSQL Drop kolonne

Vi vil bruge følgende kommando, hvis vi ønsker at slette cate_id kolonne af Produkt bord:

 ALTER TABLE Product DROP COLUMN cate_id; 

Produktion

Efter at have udført ovenstående kommando, får vi nedenstående besked; det cate_id kolonne faldt fra Produkt bord.

PostgreSQL Drop kolonne

Hvis vi ønsker at se tabellen i psql, vil vi bruge nedenstående kommando

 Javatpoint=# d Product; 

PostgreSQL Drop kolonne

Som vi kan se i ovenstående skærmbillede, sletter ovenstående kommando Kate_id kolonne og omfatter Kate_id kolonnen ind i den fremmede nøgle-begrænsning.

Nu vil vi forsøge at droppe Brand_id kolonne fra Produkt bord.

 ALTER TABLE Product DROP COLUMN Brand_id; 

Når vi udfører ovenstående kommando, vil PostgreSQL rejse nedenstående fejl:

PostgreSQL Drop kolonne

Den oplyste, at produktinfo visningen bruger kolonnen Brand_id af Produkt bord.

Så vi vil bruge kaskade mulighed for at slette begge Brand_id kolonne og Produktinfo se med nedenstående kommandos hjælp:

 ALTER TABLE Product DROP COLUMN Brand_id CASCADE; 

Når vi implementerer ovenstående kommando, vil den hæve nedenstående varsel og slip den pågældende kolonne.

PostgreSQL Drop kolonne

Her vil vi droppe både listepris og modelår kolonner i en enkelt kommando, og vi skal bruge flere DROP KOLONNE betingelser som vi gjorde nedenfor:

 ALTER TABLE Product DROP COLUMN List_Price, DROP COLUMN Model_year; 

Produktion

Efter at have udført ovenstående kommando, får vi nedenstående meddelelsesvindue: The Listepris og Modelår kolonner er blevet droppet fra Produkt bord.

PostgreSQL Drop kolonne

Hvis vi ønsker at se, at ovenstående operationer fungerer fint eller ej, vil vi bruge Vælg kommando:

 Select * from Product ; 

Produktion

Efter at have udført ovenstående kommando, får vi nedenstående output:

PostgreSQL Drop kolonne