PostgreSQL ALTER TABLE : Ajouter et renommer une colonne
โก Rรฉsumรฉ intelligent
PostgreSQL La commande ALTER TABLE modifie la structure d'une table existante, vous permettant d'ajouter ou de supprimer des colonnes, de renommer une colonne ou la table entiรจre, de dรฉfinir des valeurs par dรฉfaut et d'attacher des contraintes de vรฉrification sans recrรฉer l'objet.

Qu'est-ce que ALTER TABLE dans PostgreSQL?
Le ALTER TABLE Cette commande permet de modifier la structure d'un PostgreSQL table. C'est la commande utilisรฉe pour modifier les colonnes ou le nom d'une table, sans la supprimer.ping et recrรฉer l'objet.
Syntaxe
Voici la syntaxe du PostgreSQL Commande ALTER TABLE :
ALTER TABLE table-name action;
Le paramรจtre ยซ nom_table ยป correspond au nom de la table ร modifier. Le paramรจtre ยซ action ยป correspond ร lโaction ร effectuer, comme par exemple modifier le nom ou le type de donnรฉes dโune colonne.
Description
La commande ALTER TABLE modifie la dรฉfinition d'une table existante. Il prend les sous-formulaires suivants :
- AJOUTER UNE COLONNE: cette commande utilise une syntaxe similaire ร celle de la commande CREATE TABLE pour ajouter une nouvelle colonne ร une table.
- COLONNE DE DรPOSE: pour la chuteping une colonne de table. Les contraintes et les index imposรฉs aux colonnes seront รฉgalement supprimรฉs.
- Dรฉfinir/supprimer la valeur par dรฉfautPermet de dรฉfinir ou de supprimer la valeur par dรฉfaut d'une colonne. La modification ne s'applique qu'aux opรฉrations suivantes. INSรRER les instructions.
- SET/DROP NON NULL: modifie si une colonne autorise ou non les valeurs nulles.
- STATISTIQUES DE L'ENSEMBLE: pour dรฉfinir la cible de collecte de statistiques pour chaque colonne pour les opรฉrations ANALYZE.
- STOCKAGE DES ENSEMBLES: pour dรฉfinir le mode de stockage d'une colonne, qu'elle soit en ligne ou dans une table supplรฉmentaire.
- ENSEMBLE SANS OIDES: utilisรฉ pour supprimer l'ancienne colonne OID de la table.
- RENOMMER: pour changer le nom de la table ou le nom d'une colonne.
- AJOUTER table_constraint: utilisรฉ pour ajouter une nouvelle contrainte ร une table. Il utilise la mรชme syntaxe que le CREER LA TABLE commander.
- CONTRAINTE DE CHUTE: utilisรฉ pour la chuteping une contrainte de table.
- PROPRIรTAIRE: pour changer le propriรฉtaire d'une table, d'une sรฉquence, d'un index ou d'une vue pour un utilisateur spรฉcifique.
- CLUSTER: pour marquer une table ร utiliser pour de futures opรฉrations de cluster.
Modification d'une colonne
Une colonne peut รชtre modifiรฉe de plusieurs maniรจres. Ces modifications s'effectuent ร l'aide de la commande ALTER TABLE. Examinons-les ci-dessous.
Ajout d'une nouvelle colonne
Pour ajouter une nouvelle colonne ร un PostgreSQL table, la commande ALTER TABLE est utilisรฉe avec la syntaxe suivante :
ALTER TABLE table-name ADD new-column-name column-definition;
Le nom de la table est le nom de la table ร modifier. Le nom de la nouvelle colonne est le nom de la nouvelle colonne ร ajouter. La dรฉfinition de la colonne est la dรฉfinition de la colonne. Type de donnรฉes de la nouvelle colonne. Voir le tableau Livre ci-dessous :
Le tableau comporte deux colonnes : ยซ id ยป et ยซ name ยป. Nous devons ajouter une nouvelle colonne au tableau et la nommer ยซ author ยป. Il suffit dโexรฉcuter la commande suivante :
ALTER TABLE Book ADD author VARCHAR(50);
Aprรจs avoir exรฉcutรฉ la commande ci-dessus, la table Book se prรฉsente dรฉsormais comme suit :
La nouvelle colonne a รฉtรฉ ajoutรฉe avec succรจs.
Renommer une colonne de tableau
Nous pouvons utiliser la commande ALTER TABLE pour changer le nom d'une colonne. Dans ce cas, la commande est utilisรฉe avec la syntaxe suivante :
ALTER TABLE table-name RENAME COLUMN old-name TO new-name;
Le nom de la table est le nom de la table dont la colonne doit รชtre renommรฉe. L'ancien nom est le nom actuel de la colonne, et le nouveau nom est son nouveau nom. Prenons l'exemple de la table Book ci-dessous :
Livre:
Nous devons renommer la colonne ยซ auteur ยป en ยซ auteur_du_livre ยป. Voici la commande :
ALTER TABLE Book RENAME COLUMN author TO book_author;
Aprรจs avoir exรฉcutรฉ la commande, nous pouvons visualiser la structure de la table :
Le nom de la colonne a รฉtรฉ modifiรฉ avec succรจs.
Dรฉfinition d'une valeur par dรฉfaut pour une colonne
Il est possible de dรฉfinir une valeur par dรฉfaut pour une colonne. Ainsi, mรชme si aucune valeur n'est spรฉcifiรฉe lors des opรฉrations d'insertion, la valeur par dรฉfaut sera utilisรฉe. Dans ce cas, la commande ALTER TABLE peut รชtre utilisรฉe avec la syntaxe suivante :
ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];
Le nom de la table correspond ร la table dont la colonne doit รชtre modifiรฉe. Le nom de la colonne correspond ร la colonne dont la valeur par dรฉfaut doit รชtre dรฉfinie, et la valeur correspond ร la valeur par dรฉfaut de cette colonne. Prenons l'exemple de la table Book ci-dessous :
Nous devons dรฉfinir une valeur par dรฉfaut pour la colonne book_author. Nous pouvons exรฉcuter la commande suivante :
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Maintenant, insรฉrons une ligne dans le tableau :
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners');
Veuillez noter que nous n'avons renseignรฉ que deux colonnes : ยซ id ยป et ยซ name ยป. Cependant, la valeur par dรฉfaut a รฉtรฉ utilisรฉe pour la colonne ยซ book_author ยป.
Ajout d'une contrainte de vรฉrification
Une contrainte de vรฉrification permet de valider les enregistrements insรฉrรฉs dans une table. Nous pouvons le faire en combinant la commande ALTER TABLE avec l'instruction ADD CHECK. Syntaxe:
ALTER TABLE table-name ADD CHECK expression;
Le nom de la table est celui de la table ร modifier, et l'expression est la contrainte ร imposer ร la colonne de cette table. Modifions la colonne book_author de la table Book afin qu'elle n'accepte que les valeurs Nicholas et Samuel :
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
Essayons maintenant d'insรฉrer une valeur autre que Nicholas ou Samuel dans la colonne book_author de la table Book :
INSERT INTO Book VALUES(7, 'Meilleur PostgreSQL Book', 'Gregory Bush');
L'instruction renverra l'erreur suivante :
L'opรฉration d'insertion a รฉchouรฉ car nous avons violรฉ la contrainte de vรฉrification.
Renommer une table
Voici la syntaxe de la commande ALTER TABLE pour renommer une table :
ALTER TABLE table-name RENAME TO new-table-name;
Le nom actuel de la table est indiquรฉ, et le nouveau nom de la table est le nouveau nom qui lui sera attribuรฉ. Par exemple, changeons le nom de la table ยซ Book ยป en ยซ Books ยป :
ALTER TABLE Book RENAME TO Books;
Utiliser pgAdmin
Jusqu'ร prรฉsent, les actions ont รฉtรฉ exรฉcutรฉes depuis l'interface SQL. Voyons maintenant comment rรฉaliser ces mรชmes actions visuellement ร l'aide de pgAdmin.
Ajout d'une nouvelle colonne
รtape 1) Connectez-vous ร votre compte pgAdmin.
รtape 2)
- Dans la barre de navigation de gauche, cliquez sur Bases de donnรฉes.
- Cliquez sur Dรฉmo.
รtape 3) Tapez la requรชte dans l'รฉditeur de requรชtes :
ALTER TABLE Book ADD author VARCHAR(50);
รtape 4) Cliquez sur le bouton Exรฉcuter.
รtape 5) Pour vรฉrifier si la colonne a รฉtรฉ ajoutรฉe, procรฉdez comme suit :
- Cliquez sur Bases de donnรฉes dans la navigation de gauche.
- Dรฉveloppez Dรฉmo.
- Dรฉveloppez les schรฉmas.
- Dรฉveloppez Public.
- Dรฉveloppez les tableaux.
- Dรฉveloppez le livre.
- Dรฉveloppez les colonnes.
La colonne aurait dรป รชtre ajoutรฉe, comme indiquรฉ ci-dessous :
Renommer une colonne de tableau
รtape 1) Connectez-vous ร votre compte pgAdmin.
รtape 2)
- Dans la barre de navigation de gauche, cliquez sur Bases de donnรฉes.
- Cliquez sur Dรฉmo.
รtape 3) Tapez la requรชte dans l'รฉditeur de requรชtes :
ALTER TABLE Book RENAME COLUMN author TO book_author;
รtape 4) Cliquez sur le bouton Exรฉcuter.
รtape 5) Pour vรฉrifier si la modification a rรฉussi, dรฉveloppez les colonnes du tableau des livres comme prรฉcรฉdemment :
Les colonnes devraient maintenant รชtre les suivantes :
La colonne a รฉtรฉ modifiรฉe avec succรจs.
Dรฉfinition d'une valeur par dรฉfaut pour une colonne
รtape 1) Connectez-vous ร votre compte pgAdmin.
รtape 2)
- Dans la barre de navigation de gauche, cliquez sur Bases de donnรฉes.
- Cliquez sur Dรฉmo.
รtape 3) Tapez la requรชte dans l'รฉditeur de requรชtes :
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
รtape 4) Cliquez sur le bouton Exรฉcuter.
รtape 5) Pour tester, exรฉcutez la commande suivante dans l'รฉditeur de requรชtes :
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners')
รtape 6) Maintenant, nous pouvons interroger la table pour vรฉrifier si la valeur par dรฉfaut a รฉtรฉ insรฉrรฉe dans la colonne book_author :
Ajout d'une contrainte de vรฉrification
รtape 1) Connectez-vous ร votre compte pgAdmin.
รtape 2)
- Dans la barre de navigation de gauche, cliquez sur Bases de donnรฉes.
- Cliquez sur Dรฉmo.
รtape 3) Tapez la requรชte dans l'รฉditeur de requรชtes :
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
รtape 4) Cliquez sur le bouton Exรฉcuter.
รtape 5) Pour tester cela, saisissez la requรชte suivante dans l'รฉditeur de requรชtes et cliquez sur le bouton Exรฉcuter :
INSERT INTO Book VALUES(7, 'Meilleur PostgreSQL Book', 'Gregory Bush');
Il renverra ce qui suit :
Renommer une table
รtape 1) Connectez-vous ร votre compte pgAdmin.
รtape 2)
- Dans la barre de navigation de gauche, cliquez sur Bases de donnรฉes.
- Cliquez sur Dรฉmo.
รtape 3) Tapez la requรชte dans l'รฉditeur de requรชtes :
ALTER TABLE Book RENAME TO Books;
รtape 4) Cliquez sur le bouton Exรฉcuter.
รtape 5) Pour vรฉrifier si la table a รฉtรฉ renommรฉe, dรฉveloppez Bases de donnรฉes > Dรฉmo > Schรฉmas > Public > Tables :
La table a รฉtรฉ renommรฉe avec succรจs.
Tรฉlรฉchargez la base de donnรฉes utilisรฉe dans ce tutoriel

























