wprowadzenie
w PostgreSQL można użyć polecenia ALTER TABLE
do dodania, usunięcia lub modyfikacji tabeli. Jeśli chcesz dodać kolumnę do tabeli, po prostu określ klauzulę ADD COLUMN
w instrukcji ALTER TABLE
. Jeśli jednak spróbujesz dodać już istniejącą kolumnę, pojawi się błąd. Łatwo jest uniknąć tego błędu, używając opcjiIF NOT EXISTS
z klauzuląADD COLUMN
. Ta opcja instruuje PostgreSQL, aby dodał nową kolumnę tylko wtedy, gdy nazwa kolumny nie istnieje w tabeli. W tym artykule przyjrzymy się bliżej poleceniu Postgres ADD COLUMN IF NOT EXISTS i sprawdzimy kilka przykładów jego użycia.
wymagania wstępne
aby uzyskać jak najwięcej z tego samouczka, musisz upewnić się, że kilka wymagań wstępnych jest na swoim komputerze:
- PostgreSQL musi być zainstalowany na twoim komputerze, abyś mógł przetestować nasze przykłady polecenia Postgres ADD COLUMN IF NOT EXISTS.
- powinieneś posiadać podstawową wiedzę na temat PostgreSQL, aby postępować zgodnie z instrukcjami zawartymi w tym artykule.
składnia Postgres jeśli nie istnieje
zaczniemy od szybkiego przyjrzenia się składni dla opcjiIF NOT EXISTS
w instrukcjiALTER TABLE
:
1
2 |
ALTER TABLE TABLE_NAME
Dodaj kolumnę, jeśli nie istnieje column_name |
omówmy tę składnię nieco bardziej szczegółowo:
- najpierw podajemy nazwę tabeli, do której chcemy dodać kolumnę.
- podajemy opcję
IF NOT EXISTS
po klauzuliADD COLUMN
, a następnie podajemy nazwę kolumny i jej typ danych.
opcjaIF NOT EXISTS
sprawdzi, czy podana nazwa kolumny istnieje w tabeli. Po włączeniu tej opcji nie zostanie zwrócony żaden błąd, jeśli spróbujesz dodać kolumnę, która już istnieje.
Postgres jeśli nie istnieje przykład
zanim przejdziemy dalej, stwórzmy przykładową tabelę do użycia w naszych przykładach:
1
2 3 4 5 |
Utwórz pracowników tabeli (
id szeregowy klucz podstawowy, nazwa VARCHAR(50), pozycja varchar(50) ); |
tabela o nazwieemployees
została utworzona.
Dodaj kolumnę
teraz spróbujmy dodać nową kolumnę do naszej tabeli o tej samej nazwie kolumny, co istniejąca kolumna. Użyjemy następującego ALTER TABLE
oświadczenie:
1
2 |
ALTER TABLE employees add column name VARCHAR(50);
Error: Kolumna „nazwa” relacji „pracownicy”już istnieje |
To polecenie zwróci błąd, ponieważ kolumna” nazwa”w tabeli employees
już istnieje. Aby uniknąć tego błędu, możemy po prostu użyć opcji IF NOT EXISTS
. Zobaczmy, jak wygląda nasze oświadczenie z tą opcją:
1
2 3 |
ALTER TABLE employees ADD COLUMN IF NOT EXISTS name VARCHAR(50);
notice: kolumna „nazwa” relacji „pracownicy” już istnieje, pomijając Alter table |
uwaga: powyższe polecenie nie zwróciło błędu, ale wyświetliło komunikat informujący, że kolumna o tej samej nazwie już istnieje.
jak myślisz, co się stanie, jeśli spróbujesz dodać kolumnę o tej samej nazwie istniejącej kolumny, ale o innym typie danych? Spróbujmy i zobaczmy:
1
2 3 |
ALTER TABLE employees ADD COLUMN IF NOT EXISTS name TEXT;
zawiadomienie: Kolumna „nazwa” relacji „pracownicy”już istnieje, pomijając ALTER TABLE |
kolumna nadal nie zostanie dodana, ponieważ kolumna o tej samej nazwie już istnieje.
podsumowanie
gdy musisz dokonać zmiany w jednej z tabel PostgreSQL, łatwo jest dodać, usunąć lub zmienić nazwę kolumny za pomocą poleceniaALTER TABLE
; jednak może wystąpić błąd, jeśli spróbujesz dodać kolumnę, która już istnieje. Aby uniknąć potencjalnych błędów, możesz użyć opcji IF ALREADY EXISTS
po klauzuli ADD COLUMN
w instrukcji ALTER TABLE
. W tym artykule omówiliśmy instrukcję Postgres ADD COLUMN IF ALREADY EXISTS i przejrzeliśmy kilka przykładów jej użycia. Dzięki naszym przykładom i instrukcjom krok po kroku będziesz mógł dodawać kolumny do tabeli bez napotkania błędów we własnej bazie danych PostgreSQL.