Maison > Article > base de données > Que faire si les données de chargement MySQL sont tronquées ?
Solution de chargement de données MySQL tronquées : 1. Recherchez l'instruction SQL tronquée ; 2. Modifiez l'instruction en "LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE jeu de caractères utf8 ;".
L'environnement d'exploitation de ce tutoriel : système Windows 10, MySQL version 5.7, ordinateur Dell G3.
Que dois-je faire si les données de chargement MySQL sont tronquées ?
Résolvez le problème des données chinoises tronquées importées par MySQL à l'aide de LOAD
Supposons que les données du texte employé.txt soient importées dans la table EMPLOYEE
Des instructions SQL tronquées apparaissent
LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE;
Solution, ajoutez le jeu de caractères utf8 à la fin
LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE character set utf8;
Extensions associées :
1. Utilisez l'instruction Load pour importer des données
Voici un bref résumé de la commande Load.
Après avoir entré MySQL, utilisez la commande :
load data local infile 'S:/tab_user.txt' into table tab_user lines terminated by '\r\n' ignore 1 lines;
La syntaxe de l'instruction est la suivante :
Syntaxe de base :
load data [low_priority] [local] infile 'file_name txt' [replace | ignore] into table tbl_name [fields [terminated by't'] [OPTIONALLY] enclosed by ''] [escaped by'\' ]] [lines terminated by'n'] [ignore number lines] [(col_name, )]
Explication de la partie syntaxe :
L'instruction load data infile lit une table à partir d'un fichier texte à un milieu à très grande vitesse. Avant d'utiliser cette commande, le processus (service) mysqld doit être en cours d'exécution.
Pour des raisons de sécurité, lors de la lecture d'un fichier texte situé sur le serveur, le fichier doit se trouver dans le répertoire de la base de données ou être lisible par tous.
De plus, pour utiliser le chargement des données dans le fichier sur le fichier sur le serveur, vous devez disposer des autorisations de fichier sur l'hôte du serveur.
(1) Si vous spécifiez le mot-clé low_priority, alors MySQL attendra que personne d'autre ne lise cette table avant d'insérer des données. Vous pouvez utiliser la commande suivante :
load data low_priority infile "S:/tab_user.txt" dans la table tab_user ;
2) Si vous spécifiez le mot-clé local, cela signifie lire le fichier depuis l'hôte client. Si local n'est pas spécifié, le fichier doit être situé sur le serveur.
(3), remplacer et ignorer les mots-clés contrôlent le traitement de la duplication des enregistrements de clés uniques existants. Si vous spécifiez replace, la nouvelle ligne remplacera la ligne existante par la même valeur de clé unique. Si vous spécifiez ignorer, la saisie des lignes en double pour les lignes existantes avec des clés uniques est ignorée. Si vous ne spécifiez aucune de ces options, une erreur se produit lorsqu'une clé en double est trouvée et le reste du fichier texte est ignoré. Par exemple :
load data low_priority infile "S:/tab_user.txt" replace
into table tab_user;
(4), delimiter
(a) Le mot-clé field spécifie le format de fractionnement des segments de fichier S'il est utilisé Quand. En ce qui concerne ce mot-clé, le profileur MySQL espère voir au moins une des options suivantes :
terminé par un délimiteur : cela signifie quel caractère est utilisé comme délimiteur
entouré par un caractère entre crochets de champ
échappé par un caractère d'échappement
terminé par décrit le délimiteur du champ, qui est le caractère de tabulation (t) par défaut
enfermé par décrit le caractère de parenthèse du champ.
échappé par le caractère d'échappement décrit. La valeur par défaut est une barre oblique inverse (antislash : )
Par exemple : charger le fichier de données "S:/tab_user.txt" et le remplacer dans la table tab_user (id, nom) terminé par ',' ignorer 1 lignes ;(, comme délimiteur)
( b) Le mot-clé lines spécifie le délimiteur de chaque enregistrement. La valeur par défaut est 'n', qui est le caractère de nouvelle ligne
Si les deux champs sont spécifiés, les champs doivent être avant les lignes. Si vous ne spécifiez pas le mot-clé field, la valeur par défaut est la même que si vous écriviez : Fields terminés par 't' entourés par ' '' ' échappés par '\'
Si vous ne spécifiez pas de clause lines, la valeur par défaut la valeur est la même que si La même chose que vous écrivez comme ceci : lignes terminées par 'n'
Par exemple : charger le fichier de données "s:/tab_user.txt" remplacer dans la table les champs de test terminés par ',' les lignes terminées par ' /n';
(5) , charger les données dans le fichier peut importer des fichiers dans la base de données en fonction des colonnes spécifiées. Lorsque nous souhaitons importer une partie des données, nous devons ajouter quelques colonnes (colonnes/champs/champs) à la base de données MySQL pour répondre à certains besoins supplémentaires. Par exemple, lorsque nous souhaitons passer d'une base de données Access à une base de données MySQL
L'exemple suivant montre comment importer des données dans une colonne (champ) spécifiée :
charger le fichier de données "s:/tab_user.txt" dans la table tab_user ( id, name);
(6). Lors de la recherche de fichiers sur l'hôte du serveur, le serveur utilise les règles suivantes :
(a) Si un nom de chemin absolu est donné, le serveur utilise ce nom de chemin.
(b) Si un chemin d'accès relatif avec un ou plusieurs composants précédents est donné, le serveur recherche le fichier relatif au répertoire de données du serveur.
(c) Si un nom de fichier sans préfixe est donné, le serveur recherche le fichier dans le répertoire de la base de données actuelle.
Par exemple : Le fichier donné comme "/myfile txt" est lu depuis le répertoire de données du serveur, et un fichier donné comme "myfile txt" est lu depuis le répertoire de base de données de la base de données actuelle
Apprentissage recommandé : " Tutoriel vidéo MySQL》
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!