Lors d’une opération de sauvegarde et de récupération de données mysql, un problème est survenu : après avoir utilisé sqlyog pour la sauvegarde des données, puis récupéré les données sur un autre serveur, le séparateur « ' » était englouti à cause du champ varbinaire dans l’une des tables (en raison du problème d’encodage binaire, le séparateur de guillemets était traité comme faisant partie des données), de sorte que les données ne pouvaient pas être importées normalement.
Certains outils textuels étaient utilisés pour le traitement, mais ils échouaient, certains étant reconnaissables, mais modifiant automatiquement les données encodées en binaire, et certains inséraient d’autres données binaires, rendant la liste toujours illisible.
Envisagez donc d’autres méthodes : lire les données, épeler l’instruction SQL, puis l’importer. Les méthodes spécifiques sont :
(1) Utiliser la fonction HEX pour lire les données lors de l’exportation, et convertir les données binaires en chaîne hexadécimale ;
sélectionnez HEX(binField) depuis testTable ;
(2) Utiliser la fonction UNHEX pour convertir la chaîne hexadécimale dans la base de données d’importation binaire lors de l’importation ;
insérer dans testTable binField values(UNHEX(@hexstr)) ;
Le code suivant démontre le fonctionnement de HEX et UNHEX :
SELECT HEX ('ceci est un test str') et le résultat de la requête est : 746869732069732061207465737420737472 SELECT UNHEX('746869732069732061207465737420737472'), et le résultat de la requête est : ceci est un test str
Vous pouvez aussi lire directement le caractère hexadécimal, en ajoutant un préfixe 0x à la chaîne : SELECT 0x746869732069732061207465737420737472, le résultat de la requête est : ceci est un test str
De plus, vous pouvez également utiliser des méthodes binaires d’importation et d’exportation pour sauvegarder et restaurer les données. Il n’y a pas de discussion ici.
|