PostgreSQL ÆNDRE TABEL: Tilføj og omdøb kolonne
⚡ Smart opsummering
PostgreSQL ALTER TABLE ændrer strukturen af en eksisterende tabel, så du kan tilføje eller slette kolonner, omdøbe en kolonne eller hele tabellen, angive standardværdier og tilføje kontrolbegrænsninger uden at genskabe objektet.
Hvad er ALTER TABLE i PostgreSQL?
ALTER TABEL Kommandoen bruges til at ændre strukturen af en PostgreSQL tabel. Det er kommandoen, der bruges til at ændre tabelkolonnerne eller navnet på selve tabellen uden at sletteping og genskaber objektet.
Syntaks
Her er syntaksen for PostgreSQL ALTER TABLE kommando:
ALTER TABLE table-name action;
Parameteren table-name er navnet på den tabel, du skal ændre. Parameteren action er den handling, du skal udføre, f.eks. at ændre navnet på en kolonne eller ændre datatypen for en kolonne.
Beskrivelse
ALTER TABLE-kommandoen ændrer definitionen af en eksisterende tabel. Det tager følgende underformularer:
- TILFØJ KOLONNEDenne kommando bruger en lignende syntaks som CREATE TABLE-kommandoen til at tilføje en ny kolonne til en tabel.
- SLIP KOLONNE: til dropping en tabelkolonne. De begrænsninger og indekser, der er pålagt kolonnerne, vil også blive fjernet.
- INDSTIL/SLIP STANDARDbruges til at indstille eller fjerne standardværdien for en kolonne. Ændringen gælder kun for efterfølgende INDSÆT udsagn.
- SET/DROP IKKE NULL: ændrer om en kolonne tillader nuller eller ej.
- INDSTIL STATISTIK: til at indstille målet for statistikindsamling for hver kolonne for ANALYZE-operationer.
- SÆT OPBEVARING: til indstilling af lagringstilstanden for en kolonne, uanset om den er indlejret eller i en supplerende tabel.
- SÆT UDEN OIDbruges til at fjerne den gamle OID-kolonne i tabellen.
- OMDØB: for at ændre tabelnavnet eller et kolonnenavn.
- ADD table_constraintbruges til at tilføje en ny begrænsning til en tabel. Den bruger den samme syntaks som Opret tabel kommando.
- DROP KONTRASTbruges til dropping en tabelbegrænsning.
- EJER: til at ændre ejeren af en tabel, sekvens, indeks eller visning til en bestemt bruger.
- CLUSTER: til at markere en tabel, der skal bruges til fremtidige klyngeoperationer.
Ændring af en kolonne
En kolonne kan ændres på en række måder. Sådanne ændringer udføres ved hjælp af ALTER TABLE-kommandoen. Lad os diskutere disse nedenfor.
Tilføjelse af en ny kolonne
For at tilføje en ny kolonne til en PostgreSQL tabel, bruges ALTER TABLE-kommandoen med følgende syntaks:
ALTER TABLE table-name ADD new-column-name column-definition;
Tabelnavnet er navnet på den tabel, der skal ændres. Det nye kolonnenavn er navnet på den nye kolonne, der skal tilføjes. Kolonnedefinitionen er datatype af den nye kolonne. Se bogtabellen vist nedenfor:
Tabellen har to kolonner, id og name. Vi skal tilføje en ny kolonne til tabellen og give den navnet author. Kør blot følgende kommando:
ALTER TABLE Book ADD author VARCHAR(50);
Efter at have kørt ovenstående kommando, er bogtabellen nu som følger:
Den nye kolonne blev tilføjet.
Omdøbning af en tabelkolonne
Vi kan bruge kommandoen ALTER TABLE til at ændre navnet på en kolonne. I dette tilfælde bruges kommandoen med følgende syntaks:
ALTER TABLE table-name RENAME COLUMN old-name TO new-name;
Tabelnavnet er navnet på den tabel, hvis kolonne skal omdøbes. Det gamle navn er kolonnens nuværende navn, og det nye navn er kolonnens nye navn. Betragt tabelbogen vist nedenfor:
Bestil:
Vi skal ændre navnet på kolonneforfatteren til book_author. Her er kommandoen:
ALTER TABLE Book RENAME COLUMN author TO book_author;
Efter at have kørt kommandoen kan vi se tabellens struktur:
Kolonnenavnet blev ændret.
Indstilling af en standardværdi for en kolonne
Vi kan indstille en standardværdi for en kolonne, så selv når du ikke angiver en værdi for den pågældende kolonne under INSERT-operationer, vil standardværdien blive brugt. I dette tilfælde kan ALTER TABLE-kommandoen bruges med følgende syntaks:
ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];
Tabelnavnet er navnet på den tabel, hvis kolonne skal ændres. Kolonnenavnet er navnet på den kolonne, hvis standardværdi skal indstilles, og værdien er standardværdien for kolonnen. Betragt bogtabellen nedenfor:
Vi skal indstille en standardværdi for kolonnen bogforfatter. Vi kan køre følgende kommando:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Lad os nu indsætte en række i tabellen:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners');
Bemærk, at vi kun har indsat værdier for to kolonner, id og name. Standardværdien er dog blevet brugt til book_author-kolonnen:
Tilføjelse af en kontrolbegrænsning
En kontrolbegrænsning hjælper med at validere de poster, der indsættes i en tabel. Vi kan gøre dette ved at kombinere ALTER TABLE-kommandoen med ADD CHECK-sætningen. Syntaks:
ALTER TABLE table-name ADD CHECK expression;
Tabelnavnet er navnet på den tabel, der skal ændres, og udtrykket er den begrænsning, der skal pålægges tabelkolonnen. Lad os ændre book_author-kolonnen i bogtabellen, så den kun accepterer værdierne Nicholas og Samuel:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
Lad os nu prøve at indsætte en anden værdi end Nicholas eller Samuel i book_author-kolonnen i bogtabellen:
INSERT INTO Book VALUES(7, 'Bedste PostgreSQL Book', 'Gregory Bush');
Udsagnet vil returnere følgende fejl:
Indsættelseshandlingen mislykkedes, fordi vi overtrådte kontrolbegrænsningen.
Omdøbning af en tabel
Her er syntaksen for ALTER TABLE-kommandoen til at omdøbe en tabel:
ALTER TABLE table-name RENAME TO new-table-name;
Tabelnavnet er tabellens nuværende navn, og det nye tabelnavn er det nye navn, der skal tildeles tabellen. Lad os for eksempel ændre navnet på bogtabellen til bøger:
ALTER TABLE Book RENAME TO Books;
Bruger pgAdmin
Indtil videre er handlingerne blevet udført fra SQL-shell'en. Lad os nu se, hvordan de samme handlinger kan udføres visuelt ved hjælp af pgAdmin.
Tilføjelse af en ny kolonne
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Klik på Databaser i navigationslinjen til venstre.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
ALTER TABLE Book ADD author VARCHAR(50);
Trin 4) Klik på knappen Udfør.
Trin 5) For at kontrollere, om kolonnen blev tilføjet, skal du gøre følgende:
- Klik på Databaser i venstre navigation.
- Udvid Demo.
- Udvid skemaer.
- Udvid offentlig.
- Udvid tabeller.
- Udvid bogen.
- Udvid kolonner.
Kolonnen skulle være tilføjet, som vist nedenfor:
Omdøbning af en tabelkolonne
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Klik på Databaser i navigationslinjen til venstre.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
ALTER TABLE Book RENAME COLUMN author TO book_author;
Trin 4) Klik på knappen Udfør.
Trin 5) For at kontrollere om ændringen var vellykket, skal du udvide bogtabellens kolonner som før:
Kolonnerne skal nu være som følger:
Kolonnen blev ændret.
Indstilling af en standardværdi for en kolonne
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Klik på Databaser i navigationslinjen til venstre.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Trin 4) Klik på knappen Udfør.
Trin 5) For at teste skal du køre følgende kommando i forespørgselseditoren:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners')
Trin 6) Nu kan vi forespørge i tabellen for at kontrollere, om standardværdien blev indsat i kolonnen bogforfatter:
Tilføjelse af en kontrolbegrænsning
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Klik på Databaser i navigationslinjen til venstre.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Trin 4) Klik på knappen Udfør.
Trin 5) For at teste dette skal du skrive følgende forespørgsel i forespørgselseditoren og klikke på knappen Udfør:
INSERT INTO Book VALUES(7, 'Bedste PostgreSQL Book', 'Gregory Bush');
Det vil returnere følgende:
Omdøbning af en tabel
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Klik på Databaser i navigationslinjen til venstre.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
ALTER TABLE Book RENAME TO Books;
Trin 4) Klik på knappen Udfør.
Trin 5) For at kontrollere om tabellen er blevet omdøbt, skal du udvide Databaser > Demo > Skemaer > Offentlige > Tabeller:
Tabellen blev omdøbt.
Download databasen brugt i denne vejledning


























