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.

  • ๐Ÿงฑ syntaxe: L'action ALTER TABLE nom-de-table effectue une modification structurelle par instruction.
  • โž• Ajouter une colonne : L'instruction ADD nom-de-colonne type-de-donnรฉes ajoute une nouvelle colonne au tableau.
  • ๏ธ Renommer: RENAME COLUMN et RENAME TO permettent de modifier le nom d'une colonne ou le nom d'une table.
  • โš™๏ธ Valeur par dรฉfaut: La commande ALTER COLUMN SET DEFAULT fournit une valeur pour les futures lignes INSERT.
  • ๐Ÿ›ก๏ธ Vรฉrifier la contrainte : L'option AJOUTER UNE Vร‰RIFICATION valide les nouvelles donnรฉes et rejette les valeurs qui ne respectent pas la rรจgle.
  • ๐Ÿค– Migrations IA : Les assistants IA rรฉdigent les scripts ALTER TABLE et les vรฉrifient pour un dรฉploiement sรปr.

PostgreSQL ALTER TABLE

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 :

PostgreSQL Exemple de ALTER TABLE

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 :

PostgreSQL Exemple de ALTER TABLE

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:

PostgreSQL Exemple de ALTER TABLE

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 :

PostgreSQL Exemple de ALTER 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 :

PostgreSQL Exemple de ALTER TABLE

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 ยป.

PostgreSQL Exemple de ALTER TABLE

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 :

PostgreSQL Exemple de ALTER TABLE

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)

  1. Dans la barre de navigation de gauche, cliquez sur Bases de donnรฉes.
  2. Cliquez sur Dรฉmo.

PostgreSQL Exemple de ALTER TABLE

ร‰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.

PostgreSQL Exemple de ALTER TABLE

ร‰tape 5) Pour vรฉrifier si la colonne a รฉtรฉ ajoutรฉe, procรฉdez comme suit :

  1. Cliquez sur Bases de donnรฉes dans la navigation de gauche.
  2. Dรฉveloppez Dรฉmo.
  3. Dรฉveloppez les schรฉmas.
  4. Dรฉveloppez Public.
  5. Dรฉveloppez les tableaux.
  6. Dรฉveloppez le livre.
  7. Dรฉveloppez les colonnes.

PostgreSQL Exemple de ALTER TABLE

La colonne aurait dรป รชtre ajoutรฉe, comme indiquรฉ ci-dessous :

PostgreSQL Exemple de ALTER TABLE

Renommer une colonne de tableau

ร‰tape 1) Connectez-vous ร  votre compte pgAdmin.

ร‰tape 2)

  1. Dans la barre de navigation de gauche, cliquez sur Bases de donnรฉes.
  2. Cliquez sur Dรฉmo.

PostgreSQL Exemple de ALTER TABLE

ร‰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.

PostgreSQL Exemple de ALTER TABLE

ร‰tape 5) Pour vรฉrifier si la modification a rรฉussi, dรฉveloppez les colonnes du tableau des livres comme prรฉcรฉdemment :

PostgreSQL Exemple de ALTER TABLE

Les colonnes devraient maintenant รชtre les suivantes :

PostgreSQL Exemple de ALTER TABLE

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)

  1. Dans la barre de navigation de gauche, cliquez sur Bases de donnรฉes.
  2. Cliquez sur Dรฉmo.

PostgreSQL Exemple de ALTER TABLE

ร‰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.

PostgreSQL Exemple de ALTER TABLE

ร‰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 :

PostgreSQL Exemple de ALTER TABLE

Ajout d'une contrainte de vรฉrification

ร‰tape 1) Connectez-vous ร  votre compte pgAdmin.

ร‰tape 2)

  1. Dans la barre de navigation de gauche, cliquez sur Bases de donnรฉes.
  2. Cliquez sur Dรฉmo.

PostgreSQL Exemple de ALTER TABLE

ร‰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.

PostgreSQL Exemple de ALTER TABLE

ร‰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');

PostgreSQL Exemple de ALTER TABLE

Il renverra ce qui suit :

PostgreSQL Exemple de ALTER TABLE

Renommer une table

ร‰tape 1) Connectez-vous ร  votre compte pgAdmin.

ร‰tape 2)

  1. Dans la barre de navigation de gauche, cliquez sur Bases de donnรฉes.
  2. Cliquez sur Dรฉmo.

PostgreSQL Exemple de ALTER TABLE

ร‰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.

PostgreSQL Exemple de ALTER TABLE

ร‰tape 5) Pour vรฉrifier si la table a รฉtรฉ renommรฉe, dรฉveloppez Bases de donnรฉes > Dรฉmo > Schรฉmas > Public > Tables :

PostgreSQL Exemple de ALTER TABLE

La table a รฉtรฉ renommรฉe avec succรจs.

Tรฉlรฉchargez la base de donnรฉes utilisรฉe dans ce tutoriel

FAQ

Utilisez la commande ALTER TABLE nom_table ALTER COLUMN nom_colonne TYPE nouveau_type. Ajoutez une clause USING lorsque les valeurs doivent รชtre converties, par exemple : ALTER COLUMN prix TYPE numeric USING prix::numeric. PostgreSQL rรฉรฉcrit la colonne et vรฉrifie que les donnรฉes existantes correspondent au nouveau type.

Uniquement si la valeur par dรฉfaut est volatile. PostgreSQL 11. L'ajout d'une colonne avec une valeur par dรฉfaut constante met ร  jour le catalogue instantanรฉment sans rรฉรฉcrire les lignes. Une valeur par dรฉfaut appelant une fonction entraรฎne toujours une rรฉรฉcriture complรจte de la table et un verrouillage plus strict.

Non. PostgreSQL Il est impossible de modifier une contrainte existante. Supprimez la contrainte existante avec DROP CONSTRAINT, puis ajoutez la contrainte corrigรฉe avec ADD CONSTRAINT. Encadrez ces deux instructions dans une transaction afin que la table soit toujours soumise ร  la rรจgle.

ร‰numรฉrez plusieurs actions sรฉparรฉes par des virgules : ALTER TABLE Book ADD COLUMN price int, ADD COLUMN isbn text. PostgreSQL Applique chaque modification en une seule passe, ce qui est plus rapide et assure la cohรฉrence du tableau.

Utilisez ALTER TABLE nom_table ADD PRIMARY KEY (colonne) ou ADD CONSTRAINT nom_clรฉ_clรฉ PRIMARY KEY (colonne). La colonne doit contenir des valeurs uniques et non nulles ; PostgreSQL crรฉe automatiquement un index unique de support lors de la crรฉation de la clรฉ.

La commande RENAME modifie uniquement le nom de la table dans le catalogue systรจme. Les lignes, index et contraintes stockรฉs restent inchangรฉs. Les vues ou fonctions qui rรฉfรฉrencent l'ancien nom peuvent nรฉcessiter une mise ร  jour ultรฉrieure.

Les assistants IA gรฉnรจrent des scripts ALTER TABLE ร  partir d'une modification dรฉcrite, ordonnent correctement les รฉtapes ADD, RENAME et de contrainte, et ajoutent des clauses USING pour les conversions de type. Ils signalent รฉgalement les opรฉrations qui rรฉรฉcrivent de grandes tables ou qui activent des verrous importants.

Oui. Un copilote IA analyse une migration, signale les risques de verrouillage ou de rรฉรฉcriture complรจte de tables, suggรจre le traitement par lots ou la crรฉation simultanรฉe d'index, et recommande l'encapsulation.ping modifications apportรฉes ร  une transaction, ce qui rend les mises ร  jour de schรฉma plus sรปres ร  dรฉployer.

Rรฉsumez cet article avec :