6
votes

Problème d'exportation de phpmyadmin

Mon hôte partagé n'autorise pas l'accès SSH. J'essaie d'exporter une base de données à l'aide de PhpMyAdmin et d'importer sur un nouveau serveur. Je continue à obtenir cette erreur et je ne suis pas sûr de la réparer. Toute aide est appréciée.

Error
SQL query:
--
-- Indexes for dumped tables
--
--
-- Indexes for table `EWRporta_blocks`
--
ALTER TABLE  `EWRporta_blocks` ADD PRIMARY KEY (  `block_id` ) ,
ADD KEY  `title` (  `title` ) ;
MySQL said: Documentation
#1068 - Multiple primary key defined 


9 commentaires

essayé d'utiliser la ligne de commande? C'est plus sûr et est juste une commande ligne. Vous pouvez trouver beaucoup de documents sur eux. C'est plus rapide aussi.


Je n'ai pas accès sur mon hôte partagé.


Il y a toujours une manière. Demandez à votre hôte. Comprendre pour obtenir l'accès à la ligne de commande.


Il y a un problème similaire posté et répondit à: Stackoverflow.com/Questtions/28336162/...


Stackoverflow.com/Questtions/16696899/... ... Voir si cela aide. Il a une réponse aussi!


@Theshadyonehd Si vous avez un problème avec les données exportation , ignore la réponse de Apul Gupta sur la base de données d'abandon de la base de données et les tables qui déposent, il a été copié à partir d'une question où il y avait un problème avec importer . Si vous avez fait ce qu'il suggère, cela supprimerait vos données.


Quelle version phpmyadmin?


Déposez vos touches principales avant l'exportation et ajoutez-les une fois que vous avez terminé.


Je pense que vous devez supprimer vos clés principales précédentes et réessayer. d'accord avec @alextartan


3 Réponses :


0
votes

Comme d'autres l'ont dit, déposez et recréez les tables. En phpmyadmin, sélectionnez la case à cocher «Ajouter une table Drop» lorsque vous effectuez l'exportation. Ensuite, la question décrite doit être résolue à l'importation.


0 commentaires

1
votes

J'ai rencontré ce problème plusieurs fois et Modonoghue a un moyen valide de la manipuler en laissant tomber vos tables et de les recréer complètement.

problème et solution générale

En gros, ce qui se passe, c'est que vous essayez d'exécuter des instructions insertion qui inséraient des valeurs dans des clés primaires qui existent déjà - vous donnant ainsi une erreur de touches en double. La base de données n'a aucune idée de la manière de gérer plusieurs entrées avec la même clé, car SQL Logic est basé sur toutes les "lignes" ayant une clé primaire totalement unique.

Qu'est-ce que vous VOIR à faire est de sauvegarder toutes les valeurs à votre fichier SQL exporté, dans une requête qui, lorsque vous importez le fichier à nouveau, supprime tous les valeurs (supposant que vous souhaitez le restaurer à un certain point et ne vous inquiétez pas des données enregistrées entre votre date d'exportation et votre date d'importation!) et insère toutes les valeurs exportées ... ou d'une manière ou d'une autre évite Essayer d'ajouter une nouvelle entrée avec une clé existante (voir suivi).

Une méthode pour exporter une base de données spécifique (tronquée):
  1. En d'autres termes, lorsque vous utilisez PhpMyAdmin pour exporter votre fichier SQL, cliquez sur "Personnalisé - Afficher toutes les options possibles".
  2. Sous "Options spécifiques au format" Assurez-vous que "STROND>" Structure et données "est sélectionné (sinon, vous risquez de laisser tomber vos tables et de ne pas avoir les données à les restaurer !!!)
  3. sous "Options de création de données" Sélectionnez "TRONCER TABLE DE TABLE AVANT D'INSERT" - Cela supprimera toutes les données existantes dans les tableaux.

    Lorsque vous importez, toutes les données existantes seront supprimées de chaque table (tronquée) et toutes les données exportées seront écrites dans les tableaux (insertion) mais les tables elles-mêmes ne seront pas supprimées (goutte).

    Ignorer vs tronquage (itinéraire alternatif)

    Vous devriez pouvoir sauter l'étape 3 ci-dessus (tronquée) et sélectionner la case à cocher "Au lieu d'insérer des instructions d'utilisation ..." "Insert Ignorer les instructions"

    Fondamentalement, "Ignorer" saute simplement les duplicats dans vos données exportées et vous empêche de devoir supprimer vos données existantes. C'est bon si vous souhaitez simplement ajouter des données perdues, sans supprimer des données modifiées / ajoutées depuis la dernière exportation.

    superutilisateur (sur la mise à jour de la clé en double)

    Il y a aussi un insert dans ... sur la mise à jour de clé en double ... qui vous permet de dire à la requête exactement quoi faire s'il y a une clé en double. Cela vous empêche de simplement ignorer deux entrées avec des clés identiques qui peuvent ne pas être des entrées identiques. Il est plus compliqué de configurer correctement, cependant.


0 commentaires

-1
votes

Supprimer le commentaire généré par l'outil d'exportation xxx

et essayez d'exécuter la requête comme suit uniquement

alter Table ewrdortta_blocks Ajouter une clé primaire (< code> block_id ), Ajouter une clé titre ( titre );


0 commentaires