PostgreSQL ALTER TABLE: Oszlop hozzáadása és átnevezése

⚡ Okos összefoglaló

PostgreSQL Az ALTER TABLE parancs megváltoztatja egy meglévő tábla szerkezetét, lehetővé téve oszlopok hozzáadását vagy eltávolítását, oszlop vagy az egész tábla átnevezését, alapértelmezett értékek beállítását és ellenőrzési korlátozások csatolását az objektum újbóli létrehozása nélkül.

  • 🧱 Syntax: Az ALTER TABLE táblanév művelet utasításonként egy szerkezeti módosítást hajt végre.
  • Oszlop hozzáadása: Az ADD oszlopnév adattípus egy új oszlopot fűz hozzá a táblához.
  • ✏️ Átnevezés: Az OSZLOP ÁTNEVEZÉSE és az ÁTNEVEZÉS TO parancsokkal módosíthatja az oszlop vagy a tábla nevét.
  • 🇧🇷 Alapértelmezett érték: Az ALTER COLUMN SET DEFAULT parancs értéket ad a jövőbeli INSERT sorokhoz.
  • 🛡️ Ellenőrzési korlátozás: Az ADD CHECK ellenőrzi az új adatokat, és elutasítja a szabálynak nem megfelelő értékeket.
  • 🤖 AI migrációk: A mesterséges intelligencia asszisztensei ALTER TABLE szkripteket készítenek, és áttekintik azokat a biztonságos telepítés érdekében.

PostgreSQL ALTER TABLE

Mi az ALTER TABLE a következőben? PostgreSQL?

Az ALTER TABLE A parancs egy struktúra megváltoztatására szolgál. PostgreSQL tábla. Ez a parancs a tábla oszlopainak vagy magának a táblának a nevének megváltoztatására szolgál, a parancs törlése nélkül.ping és a tárgy újraalkotása.

Szintaxis

Itt van a szintaxis a PostgreSQL ALTER TABLE parancs:

ALTER TABLE table-name action;

A table-name paraméter a módosítandó tábla neve. Az action paraméter a végrehajtandó művelet, például egy oszlop nevének vagy egy oszlop adattípusának módosítása.

Leírás

Az ALTER TABLE parancs megváltoztatja egy meglévő tábla definícióját. A következő alűrlapokat használja:

  • OSZLOP HOZZÁADÁSA: ez hasonló szintaxist használ, mint a CREATE TABLE parancs egy új oszlop táblázatba való hozzáadásához.
  • DROP OSZLOP: csepp eseténping egy tábla oszlopa. Az oszlopokra vonatkozó korlátozások és indexek is elveti őket.
  • ALAPÉRTELMEZÉS BEÁLLÍTÁSA/DROP: oszlop alapértelmezett értékének beállítására vagy eltávolítására szolgál. A módosítás csak a továbbiakra vonatkozik. INSERT utasítások.
  • SET/DROP NOT NULL: megváltoztatja, hogy egy oszlop engedélyezi-e a null értékeket vagy sem.
  • STATISZTIKÁK BEÁLLÍTÁSA: az ANALYZE műveletek egyes oszlopainak statisztikai céljának beállításához.
  • TÁROLÁS BEÁLLÍTÁSA: oszlop tárolási módjának beállítására szolgál, legyen az soron belüli vagy kiegészítő táblában.
  • OIID NÉLKÜLI BEÁLLÍTÁS: a tábla régi OID oszlopának eltávolítására szolgál.
  • ÁTNEVEZÉS: a tábla vagy oszlopnév megváltoztatásához.
  • ADD table_constraint: új megszorítás táblázathoz való hozzáadására szolgál. Ugyanazt a szintaxist használja, mint a TÁBLÁZAT LÉTREHOZÁSA parancs.
  • CSEPP KORLÁTOZÁS: csepphez használjákping egy táblázatkorlátozás.
  • TULAJDONOS: egy tábla, sorozat, index vagy nézet tulajdonosának egy adott felhasználóra módosításához.
  • CSOPORT: egy táblázat megjelölésére a jövőbeli klaszterműveletekhez.

Oszlop módosítása

Egy oszlop többféleképpen módosítható. Az ilyen módosításokat az ALTER TABLE parancs segítségével végezhetjük el. Ezeket az alábbiakban tárgyaljuk.

Új oszlop hozzáadása

Új oszlop hozzáadásához a PostgreSQL táblázatban, az ALTER TABLE parancs a következő szintaxissal használatos:

ALTER TABLE table-name
  ADD new-column-name column-definition;

A tábla neve a módosítandó tábla neve. Az új oszlop neve a hozzáadandó új oszlop neve. Az oszlopdefiníció a adattípus az új oszlopban. Lásd az alábbi Könyv táblázatot:

PostgreSQL ALTER TABLE példa

A táblázat két oszlopból áll, az id és a name oszlopból. Hozzá kell adnunk egy új oszlopot a táblázathoz, és adnunk neki az author nevet. Ehhez futtassuk a következő parancsot:

ALTER TABLE Book
  ADD author VARCHAR(50);

A fenti parancs futtatása után a Book táblázat a következő:

PostgreSQL ALTER TABLE példa

Az új oszlop sikeresen hozzáadva.

Táblázatoszlop átnevezése

Az ALTER TABLE paranccsal módosíthatjuk egy oszlop nevét. Ebben az esetben a parancs a következő szintaxissal kerül felhasználásra:

ALTER TABLE table-name
  RENAME COLUMN old-name TO new-name;

A „table-name” (táblanév) annak a táblának a neve, amelynek oszlopát át akarjuk nevezni. A „old-name” (régi név) az oszlop jelenlegi neve, az „new-name” (új név) pedig az oszlop új neve. Tekintsük az alább látható „Book” táblát:

Könyv:

PostgreSQL ALTER TABLE példa

A szerző oszlopnevét book_author-ra kell változtatnunk. Íme a parancs:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

A parancs futtatása után megtekinthetjük a táblázat szerkezetét:

PostgreSQL ALTER TABLE példa

Az oszlopnév módosítása sikeresen megtörtént.

Oszlop alapértelmezett értékének beállítása

Beállíthatunk egy alapértelmezett értéket egy oszlophoz, így akkor is, ha az INSERT műveletek során nem adunk meg értéket az adott oszlophoz, az alapértelmezett érték lesz érvényben. Ebben az esetben az ALTER TABLE parancs a következő szintaxissal használható:

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

A „table-name” (táblanév) annak a táblának a neve, amelynek oszlopát módosítani kívánjuk. Az „column-name” (oszlopnév) annak az oszlopnak a neve, amelynek alapértelmezett értékét be kell állítani, az „value” (érték) pedig az oszlop alapértelmezett értéke. Tekintsük az alábbi Book táblát:

PostgreSQL ALTER TABLE példa

Be kell állítanunk egy alapértelmezett értéket a book_author oszlophoz. A következő parancsot futtathatjuk:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Most pedig szúrjunk be egy sort a táblázatba:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners');

Megjegyzendő, hogy csak két oszlophoz, az id és a name oszlophoz adtunk meg értékeket. A book_author oszlophoz azonban az alapértelmezett értéket használtuk:

PostgreSQL ALTER TABLE példa

Ellenőrző kényszer hozzáadása

Az ellenőrzési megkötés segít a táblába beszúrt rekordok érvényesítésében. Ezt úgy tehetjük meg, hogy az ALTER TABLE parancsot az ADD CHECK utasítással kombináljuk. Szintaxis:

ALTER TABLE table-name ADD CHECK expression;

A „table-name” a módosítandó tábla neve, a „expression” pedig a tábla oszlopára vonatkozó megszorítás. Módosítsuk a Book tábla „book_author” oszlopát úgy, hogy csak a Nicholas és Samuel értékeket fogadja el:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

Most próbáljunk meg Nicholastól vagy Samueltől eltérő értéket beilleszteni a Book_author oszlopába a Book táblában:

INSERT INTO Book
VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');

Az utasítás a következő hibát adja vissza:

PostgreSQL ALTER TABLE példa

A beszúrási művelet meghiúsult, mert megszegtük az ellenőrzési kényszert.

Táblázat átnevezése

Íme az ALTER TABLE parancs szintaxisa a tábla átnevezéséhez:

ALTER TABLE table-name
  RENAME TO new-table-name;

A „table-name” a tábla aktuális neve, az „new-table-name” pedig a táblához rendelendő új név. Például változtassuk meg a „Book” tábla nevét „Books”-ra:

ALTER TABLE Book
  RENAME TO Books;

pgAdmin használatával

Eddig a műveleteket az SQL shellből futtattuk. Most nézzük meg, hogyan hajthatók végre ugyanezek a műveletek vizuálisan a pgAdmin használatával.

Új oszlop hozzáadása

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2)

  1. A bal oldali navigációs sávon kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

PostgreSQL ALTER TABLE példa

Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:

ALTER TABLE Book
  ADD author VARCHAR(50);

Step 4) Kattintson a Végrehajtás gombra.

PostgreSQL ALTER TABLE példa

Step 5) Az oszlop hozzáadásának ellenőrzéséhez tegye a következőket:

  1. Kattintson a bal oldali navigációs panelen az Adatbázisok elemre.
  2. Bontsa ki a Demo elemet.
  3. Bontsa ki a Sémákat.
  4. Bontsa ki a Nyilvános elemet.
  5. Bontsa ki a táblázatokat.
  6. Könyv kibontása.
  7. Bontsa ki az Oszlopok elemet.

PostgreSQL ALTER TABLE példa

Az oszlopot az alábbiak szerint kellett volna hozzáadni:

PostgreSQL ALTER TABLE példa

Táblázatoszlop átnevezése

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2)

  1. A bal oldali navigációs sávon kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

PostgreSQL ALTER TABLE példa

Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Step 4) Kattintson a Végrehajtás gombra.

PostgreSQL ALTER TABLE példa

Step 5) A módosítás sikerességének ellenőrzéséhez bontsa ki a könyvtábla oszlopait a korábbiak szerint:

PostgreSQL ALTER TABLE példa

Az oszlopoknak most a következőnek kell lenniük:

PostgreSQL ALTER TABLE példa

Az oszlop sikeresen megváltozott.

Oszlop alapértelmezett értékének beállítása

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2)

  1. A bal oldali navigációs sávon kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

PostgreSQL ALTER TABLE példa

Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Step 4) Kattintson a Végrehajtás gombra.

PostgreSQL ALTER TABLE példa

Step 5) A teszteléshez futtassa a következő parancsot a lekérdezésszerkesztőben:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners')

Step 6) Most lekérdezhetjük a táblázatot, hogy ellenőrizzük, hogy az alapértelmezett érték bekerült-e a book_author oszlopba:

PostgreSQL ALTER TABLE példa

Ellenőrző kényszer hozzáadása

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2)

  1. A bal oldali navigációs sávon kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

PostgreSQL ALTER TABLE példa

Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

Step 4) Kattintson a Végrehajtás gombra.

PostgreSQL ALTER TABLE példa

Step 5) Ennek teszteléséhez írja be a következő lekérdezést a lekérdezésszerkesztőbe, és kattintson a Végrehajtás gombra:

INSERT INTO Book
VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');

PostgreSQL ALTER TABLE példa

A következőt adja vissza:

PostgreSQL ALTER TABLE példa

Táblázat átnevezése

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2)

  1. A bal oldali navigációs sávon kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

PostgreSQL ALTER TABLE példa

Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:

ALTER TABLE Book
  RENAME TO Books;

Step 4) Kattintson a Végrehajtás gombra.

PostgreSQL ALTER TABLE példa

Step 5) A tábla átnevezésének ellenőrzéséhez bontsa ki az Adatbázisok > Demo > Sémák > Nyilvános > Táblák menüpontot:

PostgreSQL ALTER TABLE példa

A táblázat átnevezése sikeresen megtörtént.

Töltse le az oktatóanyagban használt adatbázist

GYIK

Használd az ALTER TABLE table_name ALTER COLUMN oszlop_name TYPE new_type utasításokat. Adj hozzá egy USING záradékot, ha az értékeket át kell konvertálni, például ALTER COLUMN price TYPE numeric USING price::numeric. PostgreSQL átírja az oszlopot, és ellenőrzi, hogy a meglévő adatok illeszkednek-e az új típushoz.

Csak akkor, ha az alapértelmezett érték változékony. Mivel PostgreSQL 11-es esetben az ADD COLUMN parancs konstans alapértelmezés szerint azonnal frissíti a katalógust a sorok átírása nélkül. Egy függvényt meghívó alapértelmezés továbbra is a teljes tábla átírását és egy erősebb zárolást kényszerít ki.

Nem. PostgreSQL Nem lehet megváltoztatni a meglévő korlátozást. Töröld a meglévőt a DROP CONSTRAINT paranccsal, majd add hozzá a javítottat az ADD CONSTRAINT paranccsal. Mindkét utasítást csomagold be egy tranzakcióba, így a tábla soha nem marad szabály nélkül.

Soroljon fel több műveletet vesszővel elválasztva: ALTER TABLE Book ADD COLUMN price int, ADD COLUMN isbn text. PostgreSQL minden változtatást egyetlen menetben alkalmaz, ami gyorsabb és a táblázatot konzisztenssé teszi.

Használja az ALTER TABLE table_name ADD PRIMARY KEY (oszlop) vagy az ADD CONSTRAINT pk_name PRIMARY KEY (oszlop) parancsot. Az oszlopnak egyedi, nem null értékeket kell tartalmaznia; PostgreSQL automatikusan létrehoz egy támogató egyedi indexet a kulcs létrehozásakor.

Az ÁTNÉV parancs csak a rendszerkatalógusban frissíti a tábla nevét. A tárolt sorok, indexek és megszorítások a helyükön maradnak, és nem változnak. A régi névre hivatkozó nézeteket vagy függvényeket később is frissíteni kell.

Az AI-asszisztensek ALTER TABLE szkripteket készítenek egy leírt változásból, helyesen rendezik el az ADD, RENAME és a korlátozó lépéseket, és USING záradékokat adnak hozzá a típusátalakításokhoz. Emellett megjelölik azokat a műveleteket is, amelyek nagy táblákat írnak át, vagy nehéz zárolásokat tartalmaznak.

Igen. Egy AI Copilot felülvizsgálja a migrációt, figyelmeztet a zárolásra vagy a teljes tábla átírására, javasolja a kötegelt vagy párhuzamos indexfelépítést, és javasolja a teljes folyamatsorba csomagolt indexeket.ping változások egy tranzakcióban, így a sémafrissítések telepítése biztonságosabb.

Foglald össze ezt a bejegyzést a következőképpen: