J'ai une base de données mysql que j'essaie de remplir à partir d'un fichier texte. Le contenu de mon dossier ressemblent (comme seulement quelques exemples. Il y a des milliers de lignes)MySQL Bulk Insérer des champs de géométrie
1:GeomFromText('Polygon(0 0, 1 1, 2 2, 0 0)')
2:GeomFromText('Polygon(0 0, 1 2, 2 2, 0 0)')
Dans mon schéma, le premier champ est un entier et le second est GEOMETRIE
J'essaie de charger le données
LOAD DATA LOCAL INFILE 'myfile.txt' INTO TABLE `testDb`.`testTable` FIELDS TERMINATED BY ':' LINES TERMINATED BY '\n'
Et je reçois l'erreur
Error Code 1416 Cannot get geometry object from data you send to the GEOMETRY field
Si je tente de faire un insert individuel comme:
INSERT INTO TABLE testTable(id,region) VALUES (1,GeomFromText('Polygon(0 0, 1 1, 2 2, 0 0)'))
Cela fonctionne sans problème. Ceci est très inefficace pour un grand nombre d'inserts cependant. Est-ce que quelqu'un sait pourquoi la charge en vrac jette cette erreur?
, merci Jeff
Pourquoi écrivez-vous pas un très script simple en bash ou php ou quelque chose qui va effectuer tous les inserts en passant par le fichier. Même AWK pourrait très bien le faire, je pense. – Scott
Il s'agit de plusieurs centaines de milliers d'insertions, ce qui est très lent en termes de base de données. –
@Scott. il y avait effectivement d'autres ralentissements. maintenant l'insertion avec bouclage ne prend que 4 minutes, ce qui fonctionne pour notre cas. Merci. –