Contexte et problématique
Lors de l’utilisation de phpMyAdmin pour gérer les tables d’une base de données WordPress, il arrive que certaines fonctionnalités d’édition ne soient pas disponibles. Un message d’erreur peut indiquer que « La sélection courante ne contient pas de colonne unique », ce qui empêche d’éditer, copier ou supprimer des entrées facilement.
Dans cet article, nous allons voir comment corriger ce problème en ajoutant une clé primaire et en optimisant les colonnes concernées, notamment dans les tables posts et options de WordPress.
Ajout d’une clé primaire à la table posts
Analyse initiale
Nous avons commencé par exécuter la commande suivante pour vérifier la structure de la table :
SHOW CREATE TABLE `nom_de_la_table`;
Cela a révélé que la table posts contenait bien une colonne ID, mais cette dernière n’était pas définie comme clé primaire.
Solution mise en place
Nous avons corrigé ce problème en définissant ID comme clé primaire avec la requête suivante :
ALTER TABLE `nom_de_la_table`
ADD PRIMARY KEY (`ID`);
Résultat
La requête s’est exécutée avec succès et les boutons d’édition de phpMyAdmin sont devenus accessibles.
Pourquoi cela a fonctionné ?
IDétait déjà une colonne unique.- Il n’y avait pas de doublons dans la table.
- MySQL a accepté d’ajouter directement une clé primaire sur cette colonne.
Problème et correction de la table options
Problème rencontré
Dans la table options, nous avons voulu ajouter une clé primaire sur la colonne option_id, mais une erreur s’est produite en raison de valeurs en double.
Étape 1 : Identifier les doublons
Nous avons lancé cette requête pour détecter les éventuelles valeurs en double :
SELECT option_id, COUNT(*) FROM `nom_de_la_table`
GROUP BY option_id HAVING COUNT(*) > 1;
Résultat : Il y avait plusieurs entrées avec option_id = 0, ce qui empêchait d’ajouter une clé primaire.
Étape 2 : Corriger les valeurs en double
Nous avons remplacé les option_id = 0 par des valeurs uniques avec la requête suivante :
SET @new_id = (SELECT MAX(option_id) FROM `nom_de_la_table`) + 1;
UPDATE `nom_de_la_table`
SET option_id = (@new_id := @new_id + 1)
WHERE option_id = 0;
Étape 3 : Ajout de la clé primaire
Une fois les doublons supprimés, nous avons ajouté la clé primaire :
ALTER TABLE `nom_de_la_table`
ADD PRIMARY KEY (`option_id`);
Étape 4 : Activation de l’auto-incrémentation
Pour garantir que les nouvelles entrées aient un identifiant unique, nous avons modifié la colonne :
ALTER TABLE `nom_de_la_table`
MODIFY COLUMN `option_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
Résultat
Après ces modifications, phpMyAdmin a permis l’édition des entrées de la table options.
Pourquoi cela a fonctionné ?
- Nous avons supprimé les doublons bloquants.
option_idest devenu unique.- L’auto-incrémentation a été activée correctement.
Conclusion et recommandation
L’absence de clé primaire peut poser des problèmes dans phpMyAdmin en empêchant certaines actions. Dans les tables WordPress, il est crucial de s’assurer que les colonnes censées identifier de manière unique les entrées (comme ID dans posts ou option_id dans options) soient bien définies avec une clé primaire et, si nécessaire, en auto-incrémentation.
Si vous rencontrez des erreurs similaires ou avez besoin d’aide pour gérer votre base de données WordPress, n’hésitez pas à nous contacter.




0 commentaires