Utiliser XML avec MySQL 5.1 (part 2/5)
Insérer du XML dans MySQL
Un fichier XML, n’est finalement qu’un fichier contenant du texte et insérer du texte dans un SGBDR, est loin d’être la chose la plus difficile. Une simple requête INSERT fait l’affaire. Cela nous donne quelque chose comme ceci :
INSERT INTO ma_table (champ_texte) VALUES (‘<?xml version= »1.0″?>…’)
Cela dit, si le flux XML est important, cette façon de faire n’est guère pratique. En fait, la méthode la plus simple est d’utiliser la fonction MySQL: LOAD_FILE().
Cette fonction prend en argument un fichier et renvoie son contenu sous la forme d’une chaîne de caractères. A noter que vous devez avoir le droit FILE pour exécuter cette commande, et que le fichier doit se trouver sur la machine hôte (en local):
Insérer un fichier XML dans MySQL
mysql> CREATE DATABASE IF NOT EXISTS xml; mysql> USE xml; mysql> CREATE TABLE rss ( id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, type CHAR(30) NOT NULL, flux_rss TEXT ) ENGINE=MyISAM; mysql> INSERT INTO xml.rss VALUES (NULL, ‘cinema’, LOAD_FILE(‘./cinema.xml’));
Arrêtons nous quelques instants sur la commande LOAD XML qui est apparue avec la version 6 de MySQL (MySQL 6.0.3). Cette commande permet d’importer simplement le contenu d’un fichier XML dans une table. Elle a une syntaxe assez proche de la commande LOAD DATA que vous connaissez peut-être, et qui elle aussi facilite le travail lorsque le besoin d’importer des données d’un fichier texte se fait sentir. L’exemple suivant nous montre un exemple d’utilisation de LOAD XML:
Utilisation de la commande LOAD XML de MySQL 6
mysql6> USE xml; mysql6> CREATE TABLE consultant ( id_consultant TINYINT UNSIGNED NOT NULL PRIMARY KEY, nom CHAR(40), prenom CHAR(40) )ENGINE=MyISAM; mysql6> LOAD XML LOCAL INFILE ‘consultant .xml’ INTO TABLE consultant ROWS IDENTIFIED BY ‘<consultant>’; mysql6> SELECT * FROM consultant; +—————+——–+—————–+ | id_consultant | nom | prenom | +—————+——–+—————–+ | 1 | Dasini | Olivier | | 2 | Allard | Fabien | | 3 | Pascal | Borghino | | 4 | Arnaud | Gadal | +—————+——–+—————–+ (à suivre… utiliser XML avec MySQL 5.1 : Interroger un flux XML avec Xpath)
Architecte Solution Cloud chez Oracle
MySQL Geek, Architecte, DBA, Consultant, Formateur, Auteur, Blogueur et Conférencier.
—–
Blog: www.dasini.net/blog/en/
Twitter: https://twitter.com/freshdaz
SlideShare: www.slideshare.net/freshdaz
Youtube: https://www.youtube.com/channel/UC12TulyJsJZHoCmby3Nm3WQ
—–