PostgreSQL ALTER TABLE: Kolom toevoegen en hernoemen

โšก Slimme samenvatting

PostgreSQL Met ALTER TABLE kunt u de structuur van een bestaande tabel wijzigen, waardoor u kolommen kunt toevoegen of verwijderen, een kolom of de hele tabel kunt hernoemen, standaardwaarden kunt instellen en controlebeperkingen kunt toepassen zonder het object opnieuw aan te maken.

  • ๐Ÿงฑ Syntax: De ALTER TABLE-actie (tabelnaam) voert รฉรฉn structurele wijziging per instructie uit.
  • โž• Kolom toevoegen: Met ADD column-name data-type wordt een nieuwe kolom aan de tabel toegevoegd.
  • โ€‹ Hernoemen: RENAME COLUMN en RENAME TO wijzigen een kolomnaam of de tabelnaam.
  • โš™๏ธ Standaardwaarde: De opdracht ALTER COLUMN SET DEFAULT levert een waarde op voor toekomstige INSERT-rijen.
  • ๐Ÿ›ก๏ธ Controlebeperking: ADD CHECK valideert nieuwe gegevens en verwerpt waarden die niet aan de regel voldoen.
  • ๐Ÿค– AI-migraties: AI-assistenten stellen ALTER TABLE-scripts op en controleren deze op veilige implementatie.

PostgreSQL ALTER TABLE

Wat is ALTER TABLE in PostgreSQL?

De ALTER TABLE Het commando wordt gebruikt om de structuur van een te wijzigen. PostgreSQL Het commando `drop` wordt gebruikt om de kolommen van een tabel of de naam van de tabel zelf te wijzigen, zonder de tabel te verwijderen.ping en het object opnieuw creรซren.

Syntaxis

Hier is de syntaxis voor de PostgreSQL ALTER TABLE-opdracht:

ALTER TABLE table-name action;

De parameter `table-name` is de naam van de tabel die u wilt wijzigen. De parameter `action` is de actie die u wilt uitvoeren, zoals het wijzigen van de naam van een kolom of het wijzigen van het gegevenstype van een kolom.

Beschrijving

De opdracht ALTER TABLE wijzigt de definitie van een bestaande tabel. Het accepteert de volgende subformulieren:

  • KOLOM TOEVOEGENDeze opdracht gebruikt een vergelijkbare syntaxis als de CREATE TABLE-opdracht om een โ€‹โ€‹nieuwe kolom aan een tabel toe te voegen.
  • DROP KOLOM: voor dropping een tabelkolom. De beperkingen en indexen die op de kolommen zijn toegepast, worden ook verwijderd.
  • STANDAARD INSTELLEN/LATEN: wordt gebruikt om de standaardwaarde voor een kolom in te stellen of te verwijderen. De wijziging is alleen van toepassing op volgende kolommen. INSERT-verklaringen.
  • SET/DROP NIET NULLHiermee wordt bepaald of een kolom null-waarden toestaat of niet.
  • SET STATISTIEKEN: om het doel voor het verzamelen van statistieken voor elke kolom in te stellen voor ANALYZE-bewerkingen.
  • OPSLAG INSTELLEN: om de opslagmodus voor een kolom in te stellen, ofwel inline of in een aanvullende tabel.
  • SET ZONDER OIDS: wordt gebruikt om de oude OID-kolom van de tabel te verwijderen.
  • RENAME: voor het wijzigen van de tabelnaam of een kolomnaam.
  • VOEG tabelbeperking toe: wordt gebruikt om een โ€‹โ€‹nieuwe beperking aan een tabel toe te voegen. Het gebruikt dezelfde syntaxis als de MAAK EEN TABEL opdracht.
  • DROP BEPERKING: gebruikt voor dropping een tabelbeperking.
  • EIGENAAR: om de eigenaar van een tabel, reeks, index of weergave te wijzigen naar een bepaalde gebruiker.
  • CLUSTER: om een โ€‹โ€‹tabel te markeren die in de toekomst voor clusterbewerkingen gebruikt zal worden.

Een kolom wijzigen

Een kolom kan op verschillende manieren worden gewijzigd. Dergelijke wijzigingen worden uitgevoerd met behulp van de ALTER TABLE-opdracht. Laten we deze hieronder bespreken.

Een nieuwe kolom toevoegen

Om een โ€‹โ€‹nieuwe kolom toe te voegen aan a PostgreSQL tabel, wordt de opdracht ALTER TABLE gebruikt met de volgende syntaxis:

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

De tabelnaam is de naam van de tabel die moet worden gewijzigd. De nieuwe kolomnaam is de naam van de nieuwe kolom die moet worden toegevoegd. De kolomdefinitie is de data type van de nieuwe kolom. Zie de onderstaande tabel in het boek:

PostgreSQL ALTER TABLE Voorbeeld

De tabel heeft twee kolommen: id en naam. We moeten een nieuwe kolom aan de tabel toevoegen en deze de naam 'auteur' geven. Voer hiervoor de volgende opdracht uit:

ALTER TABLE Book
  ADD author VARCHAR(50);

Na het uitvoeren van de bovenstaande opdracht ziet de Boekentabel er nu als volgt uit:

PostgreSQL ALTER TABLE Voorbeeld

De nieuwe kolom is succesvol toegevoegd.

De naam van een tabelkolom wijzigen

We kunnen de opdracht ALTER TABLE gebruiken om de naam van een kolom te wijzigen. In dit geval wordt de opdracht gebruikt met de volgende syntaxis:

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

De tabelnaam is de naam van de tabel waarvan de kolom hernoemd moet worden. De oude naam is de huidige naam van de kolom en de nieuwe naam is de nieuwe naam van de kolom. Neem bijvoorbeeld de tabel Book die hieronder wordt weergegeven:

Boek:

PostgreSQL ALTER TABLE Voorbeeld

We moeten de naam van de kolom 'author' wijzigen in 'book_author'. Hier is het commando:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Nadat we de opdracht hebben uitgevoerd, kunnen we de structuur van de tabel bekijken:

PostgreSQL ALTER TABLE Voorbeeld

De kolomnaam is succesvol gewijzigd.

Een standaardwaarde voor een kolom instellen

We kunnen een standaardwaarde instellen voor een kolom, zodat zelfs wanneer u geen waarde voor die kolom opgeeft tijdens INSERT-bewerkingen, de standaardwaarde wordt gebruikt. In dit geval kan de ALTER TABLE-opdracht worden gebruikt met de volgende syntaxis:

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

De tabelnaam is de naam van de tabel waarvan de kolom moet worden gewijzigd. De kolomnaam is de naam van de kolom waarvan de standaardwaarde moet worden ingesteld, en de waarde is de standaardwaarde voor die kolom. Neem de onderstaande tabel 'Boek' als voorbeeld:

PostgreSQL ALTER TABLE Voorbeeld

We moeten een standaardwaarde instellen voor de kolom book_author. We kunnen de volgende opdracht uitvoeren:

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

Laten we nu een rij in de tabel invoegen:

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

Merk op dat we alleen waarden hebben ingevoerd voor twee kolommen, id en name. Voor de kolom book_author is echter de standaardwaarde gebruikt:

PostgreSQL ALTER TABLE Voorbeeld

Een controlebeperking toevoegen

Een controlebeperking helpt bij het valideren van de records die in een tabel worden ingevoegd. We kunnen dit doen door het ALTER TABLE-commando te combineren met de ADD CHECK-instructie. Syntaxis:

ALTER TABLE table-name ADD CHECK expression;

De tabelnaam is de naam van de tabel die moet worden gewijzigd, en de expressie is de beperking die moet worden opgelegd aan de tabelkolom. Laten we de kolom book_author van de tabel Book zo aanpassen dat deze alleen de waarden Nicholas en Samuel accepteert:

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

Laten we nu proberen een andere waarde dan Nicholas of Samuel in te voegen in de kolom book_author van de tabel Book:

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

De instructie retourneert de volgende foutmelding:

PostgreSQL ALTER TABLE Voorbeeld

De invoegbewerking is mislukt omdat de controlebeperking is overtreden.

De naam van een tabel wijzigen

Hier is de syntaxis voor het ALTER TABLE-commando voor het hernoemen van een tabel:

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

De tabelnaam is de huidige naam van de tabel, en de nieuwe tabelnaam is de nieuwe naam die aan de tabel moet worden toegekend. Laten we bijvoorbeeld de naam van de tabel 'Boeken' wijzigen in 'Boeken':

ALTER TABLE Book
  RENAME TO Books;

Gebruik pgAdmin

Tot nu toe werden de acties uitgevoerd vanuit de SQL-shell. Laten we nu eens kijken hoe dezelfde acties visueel kunnen worden uitgevoerd met pgAdmin.

Een nieuwe kolom toevoegen

Stap 1) Log in op uw pgAdmin-account.

Stap 2)

  1. Klik in de navigatiebalk aan de linkerkant op Databases.
  2. Klik op Demo.

PostgreSQL ALTER TABLE Voorbeeld

Stap 3) Typ de query in de query-editor:

ALTER TABLE Book
  ADD author VARCHAR(50);

Stap 4) Klik op de knop Uitvoeren.

PostgreSQL ALTER TABLE Voorbeeld

Stap 5) Om te controleren of de kolom is toegevoegd, doet u het volgende:

  1. Klik op Databases in de linkernavigatie.
  2. Vouw de demo uit.
  3. Vouw Schema's uit.
  4. Vouw Openbaar uit.
  5. Vouw Tabellen uit.
  6. Vouw boek uit.
  7. Vouw Kolommen uit.

PostgreSQL ALTER TABLE Voorbeeld

De kolom had moeten worden toegevoegd, zoals hieronder weergegeven:

PostgreSQL ALTER TABLE Voorbeeld

De naam van een tabelkolom wijzigen

Stap 1) Log in op uw pgAdmin-account.

Stap 2)

  1. Klik in de navigatiebalk aan de linkerkant op Databases.
  2. Klik op Demo.

PostgreSQL ALTER TABLE Voorbeeld

Stap 3) Typ de query in de query-editor:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Stap 4) Klik op de knop Uitvoeren.

PostgreSQL ALTER TABLE Voorbeeld

Stap 5) Om te controleren of de wijziging is gelukt, vouwt u de kolommen van de boekentabel weer uit zoals voorheen:

PostgreSQL ALTER TABLE Voorbeeld

De kolommen zouden nu als volgt moeten zijn:

PostgreSQL ALTER TABLE Voorbeeld

De kolom is succesvol gewijzigd.

Een standaardwaarde voor een kolom instellen

Stap 1) Log in op uw pgAdmin-account.

Stap 2)

  1. Klik in de navigatiebalk aan de linkerkant op Databases.
  2. Klik op Demo.

PostgreSQL ALTER TABLE Voorbeeld

Stap 3) Typ de query in de query-editor:

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

Stap 4) Klik op de knop Uitvoeren.

PostgreSQL ALTER TABLE Voorbeeld

Stap 5) Om te testen, voert u de volgende opdracht uit in de query-editor:

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

Stap 6) Nu kunnen we de tabel bevragen om te controleren of de standaardwaarde is ingevoegd in de kolom book_author:

PostgreSQL ALTER TABLE Voorbeeld

Een controlebeperking toevoegen

Stap 1) Log in op uw pgAdmin-account.

Stap 2)

  1. Klik in de navigatiebalk aan de linkerkant op Databases.
  2. Klik op Demo.

PostgreSQL ALTER TABLE Voorbeeld

Stap 3) Typ de query in de query-editor:

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

Stap 4) Klik op de knop Uitvoeren.

PostgreSQL ALTER TABLE Voorbeeld

Stap 5) Om dit te testen, typt u de volgende query in de query-editor en klikt u op de knop Uitvoeren:

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

PostgreSQL ALTER TABLE Voorbeeld

Het resultaat is het volgende:

PostgreSQL ALTER TABLE Voorbeeld

De naam van een tabel wijzigen

Stap 1) Log in op uw pgAdmin-account.

Stap 2)

  1. Klik in de navigatiebalk aan de linkerkant op Databases.
  2. Klik op Demo.

PostgreSQL ALTER TABLE Voorbeeld

Stap 3) Typ de query in de query-editor:

ALTER TABLE Book
  RENAME TO Books;

Stap 4) Klik op de knop Uitvoeren.

PostgreSQL ALTER TABLE Voorbeeld

Stap 5) Om te controleren of de tabel is hernoemd, vouwt u Databases > Demo > Schema's > Openbaar > Tabellen uit:

PostgreSQL ALTER TABLE Voorbeeld

De tabel is succesvol hernoemd.

Download de database die in deze zelfstudie wordt gebruikt

Veelgestelde vragen

Gebruik ALTER TABLE table_name ALTER COLUMN column_name TYPE new_type. Voeg een USING-clausule toe wanneer waarden geconverteerd moeten worden, bijvoorbeeld ALTER COLUMN price TYPE numeric USING price::numeric. PostgreSQL Herschrijft de kolom en controleert of de bestaande gegevens overeenkomen met het nieuwe gegevenstype.

Alleen als de standaardwaarde volatiel is. Omdat PostgreSQL 11. KOLOM TOEVOEGEN met een constante standaardwaarde werkt de catalogus direct bij zonder rijen te herschrijven. Een standaardwaarde die een functie aanroept, dwingt nog steeds een volledige tabelherschrijving en een sterkere vergrendeling af.

Nee. PostgreSQL Een bestaande beperking kan niet worden gewijzigd. Verwijder de bestaande beperking met `DROP CONSTRAINT` en voeg vervolgens de gecorrigeerde beperking toe met `ADD CONSTRAINT`. Plaats beide instructies in een transactie, zodat de tabel altijd de juiste regel bevat.

Geef meerdere acties weer, gescheiden door komma's: ALTER TABLE Book ADD COLUMN price int, ADD COLUMN isbn text. PostgreSQL Alle wijzigingen worden in รฉรฉn keer doorgevoerd, wat sneller is en de tabel consistent houdt.

Gebruik ALTER TABLE table_name ADD PRIMARY KEY (column) of ADD CONSTRAINT pk_name PRIMARY KEY (column). De kolom moet unieke, niet-null waarden bevatten; PostgreSQL Bouwt automatisch een ondersteunende unieke index op wanneer de sleutel wordt aangemaakt.

Met RENAME wordt alleen de naam van de tabel in de systeemcatalogus bijgewerkt. De opgeslagen rijen, indexen en beperkingen blijven behouden en worden niet beรฏnvloed. Weergaven of functies die naar de oude naam verwijzen, moeten mogelijk daarna nog worden bijgewerkt.

AI-assistenten stellen ALTER TABLE-scripts op aan de hand van een beschreven wijziging, ordenen de ADD-, RENAME- en constraint-stappen correct en voegen USING-clausules toe voor typeconversies. Ze signaleren ook bewerkingen die grote tabellen herschrijven of zware vergrendelingen bevatten.

Ja. Een AI-copiloot beoordeelt een migratie, waarschuwt voor vergrendelingen of volledige tabelherschrijvingen, stelt voor om indexen in batches of gelijktijdig te bouwen en adviseert wrapper-bewerkingen uit te voeren.ping Wijzigingen in een transactie maken schema-updates veiliger om te implementeren.

Vat dit bericht samen met: