La Zone 51

Comment recopier une colonne dans une base de données ?

Publié le :

Dans une base de données, il arrive parfois que l'on désire créer une autre colonne, quasi-identique à une autre, à l'intérieur d'une même table.

Pour copier le contenu d'une colonne A dans une autre colonne B de la même table, vous pouvez utiliser l'instruction SQL de mise à jour « UPDATE ». Voici un exemple de code SQL pour cette opération :

UPDATE nom_de_votre_table
SET colonne_destination = colonne_source;

Assurez-vous de remplacer « nom_de_votre_table » par le nom réel de votre table, « colonne_destination » par le nom de la colonne où vous voulez copier les données, et « colonne_source » par le nom de la colonne dont vous souhaitez copier les données.

Il faut s'assurer que la colonne de destination existe.
Il faut que la colonne de destination est le même format que la source (type de donnée, encodage nullité...).

Dans les exemples d'opérations qui vont suivre, je part d'une table à laquelle je veux ajouter deux colonnes pour avoir des données destinées à remplir le flux RSS.

Partons du principe que vous avez une table appelée « pages ».

Il faut d'abord créer la colonne « titre_rss ».

ALTER TABLE `pages` ADD `titre_rss` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL;

Ensuite, si vous avez une table appelée « pages » avec une colonne origine « titre » et une colonne destination « titre_rss », le code pourrait ressembler à ceci :

UPDATE pages
SET titre_rss = titre;

Un autre exemple avec une colonne nommée « description_rss » :

Il faut d'abord créer la colonne « description_rss ».

ALTER TABLE `pages` ADD `description_rss` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL;

Puis on recopie les données.

UPDATE pages
SET description_rss = description;

L'intérêt ici est de recopier un contenu provisoire dans une colonne qui à une même fonctionnalité mais pour une destination finale autre que l'originale.
Dans l'exemple que je vous donne ici, il s'agit de créer une colonne « titre » et « description » pour le fil RSS.

Par la suite nous allons modifier « tranquillement » les contenus des nouvelles colonnes.
L'avantage ici c'est que votre script générateur de flux RSS fonctionne déjà avec des données (provisoires) non-vides).

Les contenus de la colonne « titre_rss » et de la colonne « description_rss » seront inspirés mais différents (optimisation pour le référencement) du titre et de la description utilisés pour la rédaction de l'article de la page web.

Assurez-vous de sauvegarder vos données avant d'effectuer des mises à jour importantes dans votre base de données.

Copier une colonne dans une autre table

Si vous souhaitez copier une colonne d'une table vers une autre table, vous pouvez utiliser la combinaison d'une instruction « SELECT » et « INSERT ». Voici un exemple de requête SQL pour cela :

INSERT INTO table_destination (colonne_destination)
SELECT colonne_source
FROM table_source;

Exemple, si vous avez une table appelée « ma_table_source » avec une colonne « colonne_origine » et une autre table appelée « ma_table_destination » avec une colonne « colonne_cible », la requête devrait ressembler à ceci :

INSERT INTO ma_table_destination (colonne_cible)
SELECT colonne_origine
FROM ma_table_source;

Cette requête copiera les données de la colonne « colonne_origine » de la table source vers la colonne « colonne_cible » de la table de destination.

Assurez-vous que les types de données des colonnes correspondent et que vous avez sauvegardé vos données avant d'exécuter des requêtes importantes.