introduktion
i PostgreSQL kanALTER TABLE
– satsen användas för att lägga till, ta bort eller ändra tabellen. Om du vill lägga till en kolumn i en tabell anger du helt enkelt ADD COLUMN
– klausulen i ALTER TABLE
– satsen. Du kommer dock att stöta på ett fel om du försöker lägga till en kolumn som redan finns. Det är lätt att undvika detta fel genom att använda IF NOT EXISTS
alternativet med ADD COLUMN
klausul. Det här alternativet instruerar PostgreSQL att bara lägga till den nya kolumnen om kolumnnamnet inte finns i tabellen. I den här artikeln tar vi en närmare titt på kommandot Postgres ADD COLUMN IF NOT EXISTS och kolla in några exempel på dess användning.
förutsättningar
För att få ut det mesta av denna handledning måste du se till att ett par förutsättningar finns på plats:
- PostgreSQL måste installeras på din dator så att du kan testa våra exempel på kommandot Postgres ADD COLUMN IF NOT EXISTS.
- Du bör ha några grundläggande kunskaper i PostgreSQL för att följa med instruktionerna i denna artikel.
Postgres IF NOT EXISTS syntax
vi börjar med en snabb titt på syntaxen förIF NOT EXISTS
alternativet i ettALTER TABLE
uttalande:
1
2 |
ändra tabellnamn
Lägg till kolumn om det inte finns kolumnnamn |
låt oss diskutera denna syntax lite mer detaljerat:
- först anger vi namnet på tabellen som vi vill lägga till en kolumn till.
- Vi levererar
IF NOT EXISTS
alternativet efterADD COLUMN
– klausulen, och sedan anger vi kolumnens namn och dess datatyp.
alternativetIF NOT EXISTS
kontrollerar om det angivna kolumnnamnet finns i tabellen. Med det här alternativet på plats returneras inget fel om du försöker lägga till en kolumn som redan finns.
Postgres om det inte finns exempel
innan vi fortsätter, låt oss skapa en provtabell som ska användas i våra exempel:
1
2 3 4 5 |
skapa tabellanställda(
id seriell primärnyckel, namn varchar(50), position varchar(50) ); |
tabellen med namnetemployees
skapas nu.
Lägg till kolumn
låt oss nu försöka lägga till en ny kolumn i vårt bord med samma kolumnnamn som en befintlig kolumn. Vi använder följande ALTER TABLE
uttalande:
1
2 |
Alter Table anställda lägger till kolumnnamn varchar(50);
fel: Kolumn ” namn ”för relation” anställda”finns redan |
detta uttalande returnerar ett fel eftersom kolumnen” Namn”i employees
tabellen finns redan. För att undvika detta fel kan vi bara använda alternativet IF NOT EXISTS
. Låt oss se hur vårt uttalande ser ut med det här alternativet på plats:
1
2 3 |
ALTER TABLE employees ADD COLUMN IF NOT EXISTS name VARCHAR(50);
meddelande: kolumn ”namn” av relation ”anställda” finns redan, hoppa över alter table |
Obs: uttalandet ovan returnerade inte ett fel, men det visade ett meddelande som varnar dig om att en kolumn med samma namn redan finns.
vad tror du kommer att hända om du försöker lägga till en kolumn med samma namn på en befintlig kolumn men en annan datatyp? Låt oss prova det och se:
1
2 3 |
ALTER TABLE employees ADD COLUMN IF NOT EXISTS name TEXT;
meddelande: Kolumn ”namn” av relation”anställda”finns redan, hoppar över ALTER TABLE |
kolumnen kommer fortfarande inte att läggas till eftersom en kolumn med samma namn redan finns.
slutsats
När du behöver göra en ändring i en av dina PostgreSQL-tabeller är det enkelt att lägga till, ta bort eller byta namn på en kolumn med ALTER TABLE
uttalande; Ett fel kan dock uppstå om du försöker lägga till en kolumn som redan finns. För att kringgå eventuella fel kan du använda IF ALREADY EXISTS
efter ADD COLUMN
– klausulen i ALTER TABLE
– satsen. I den här artikeln diskuterade vi Postgres Lägg till kolumn om det redan finns uttalande och granskade några exempel på hur man använder det. Med våra exempel och steg-för-steg-instruktioner kan du lägga till kolumner i en tabell utan att stöta på fel i din egen PostgreSQL-databas.