Hoe de Postgres kolom toevoegen uit te voeren als deze niet bestaat

Inleiding

in PostgreSQL kan de instructie ALTER TABLE worden gebruikt om uw tabel toe te voegen, te verwijderen of te wijzigen. Als u een kolom aan een tabel wilt toevoegen, specificeert u eenvoudig de ADD COLUMN clausule in het ALTER TABLE statement. U zult echter een fout tegenkomen als u probeert een kolom toe te voegen die al bestaat. Het is gemakkelijk om deze fout te voorkomen door de IF NOT EXISTS optie te gebruiken met uw ADD COLUMN clausule. Deze optie instrueert PostgreSQL om de nieuwe kolom alleen toe te voegen als de kolomnaam niet bestaat in de tabel. In dit artikel, zullen we een kijkje nemen op de Postgres kolom toevoegen als niet bestaat commando en Bekijk enkele voorbeelden van het gebruik ervan.

Prerequisites

om het maximale uit deze tutorial te halen, moet u een paar prerequisites hebben:

  • PostgreSQL moet op uw computer zijn geà nstalleerd, zodat u onze voorbeelden van het commando Postgres kolom toevoegen kunt testen als het niet bestaat.
  • u dient enige basiskennis van PostgreSQL te hebben om de instructies in dit artikel te kunnen volgen.

The Postgres IF NOT EXISTS syntaxis

we beginnen met een snelle blik op de syntaxis voor deIF NOT EXISTS optie in eenALTER TABLE statement:

1
2
ALTER TABLE TABELNAAM
KOLOM TOEVOEGEN ALS het NIET BESTAAT column_name

Laten we bespreken deze syntaxis in iets meer detail:

  • Eerste, geven we de naam van de tabel die we willen toevoegen van een kolom.
  • We leveren de IF NOT EXISTS optie na de ADD COLUMN clausule, en dan specificeren we de naam van de kolom en het gegevenstype.

de IF NOT EXISTS optie zal controleren of de opgegeven kolomnaam bestaat in de tabel. Met deze optie wordt er geen fout geretourneerd als u een kolom probeert toe te voegen die al bestaat.

Postgres indien niet bestaat voorbeeld

voordat we verder gaan, maken we een voorbeeldtabel om te gebruiken in onze voorbeelden:

1
2
3
4
5
tabelmedewerkers aanmaken(
ID seriële primaire sleutel,
naam varchar(50),
positie varchar(50)
);

de tabel met de naam employees wordt nu aangemaakt.

Voeg kolom

nu, laten we proberen om een nieuwe kolom toe te voegen aan onze tabel met dezelfde kolomnaam als een bestaande kolom. We zullen de volgende ALTER TABLE statement gebruiken:

1
2
ALTER TABLE employees kolomnaam toevoegen varchar(50);
fout: Kolom ” naam “van de relatie” werknemers”bestaat al

Deze instructie geeft een fout terug omdat de kolom” naam”in de tabel employees reeds bestaat. Om deze fout te voorkomen, kunnen we gewoon de IF NOT EXISTS optie gebruiken. Laten we eens kijken hoe onze verklaring eruit ziet met deze optie op zijn plaats:

1
2
3
ALTER TABLE medewerkers KOLOM TOEVOEGEN ALS het NIET BESTAAT, naam VARCHAR(50);
MERK: De KOLOM “naam” relatie “medewerkers” al BESTAAT, het overslaan
ALTER TABLE

OPMERKING: De bovenstaande verklaring niet fout, maar het deed display een bericht weergegeven dat u een kolom met dezelfde naam bestaat al.

wat denkt u dat er zal gebeuren als u probeert een kolom toe te voegen met dezelfde naam van een bestaande kolom maar een ander gegevenstype? Laten we het proberen en zien:

1
2
3
ALTER TABLE employees Add COLUMN IF NOT EXISTS name TEXT;
NOTICE: Kolom ” naam “van de relatie” werknemers”bestaat al,
ALTER TABLE

de kolom zal nog steeds niet worden toegevoegd omdat een kolom met dezelfde naam al bestaat.

conclusie

wanneer u een wijziging wilt aanbrengen in een van uw PostgreSQL-tabellen, is het eenvoudig om een kolom toe te voegen, te verwijderen of te hernoemen met behulp van de instructieALTER TABLE; er kan echter een fout optreden als u een kolom probeert toe te voegen die al bestaat. Om mogelijke fouten te vermijden, kunt u de optie IF ALREADY EXISTS gebruiken na de ADD COLUMN clausule in uw ALTER TABLE instructie. In dit artikel bespraken we de Postgres kolom toevoegen als al bestaat statement en bespraken we enkele voorbeelden van hoe het te gebruiken. Met onze voorbeelden en stapsgewijze instructies kunt u kolommen toevoegen aan een tabel zonder fouten in uw eigen PostgreSQL-database.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *