<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le CyberZoide Qui Fretille &#187; MySQL</title>
	<atom:link href="https://blog.developpez.com/cyberzoide/pcategory/informatique/mysql/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/cyberzoide</link>
	<description></description>
	<lastBuildDate>Thu, 03 Jul 2014 09:43:37 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>LOAD DATA INFILE</title>
		<link>https://blog.developpez.com/cyberzoide/p2440/informatique/mysql/load_data_infile</link>
		<comments>https://blog.developpez.com/cyberzoide/p2440/informatique/mysql/load_data_infile#comments</comments>
		<pubDate>Tue, 17 Oct 2006 08:53:21 +0000</pubDate>
		<dc:creator><![CDATA[cyberzoide]]></dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Une limitation de MySQL dommageable : la requête LOAD DATA INFILE ne fonctionne qu&#8217;avec les fichiers sources copiés dans le dossier de ressources de MySQL (typiquement /usr/local/mysql/var/). Une tentative avec un fichier localisé ailleurs donnera cette erreur : ERROR 13 (HY000): Can't get stat of '/usr/local/mysql/var/monFichier.csv' (Errcode &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;: 2) même si les droits en lecture sont positionnés correctement. [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img src="http://blog.developpez.com/media/mysql_100x52-64.gif" width="100" height="52" alt="" align="right"/> Une limitation de MySQL dommageable : la requête <code class="codecolorer text default"><span class="text">LOAD DATA INFILE</span></code> ne fonctionne qu&rsquo;avec les fichiers sources copiés dans le dossier de ressources de MySQL (typiquement <code class="codecolorer text default"><span class="text">/usr/local/mysql/var/</span></code>).</p>
<p>Une tentative avec un fichier localisé ailleurs donnera cette erreur :<br />
<code class="codecolorer text default"><span class="text">ERROR 13 (HY000): Can't get stat of '/usr/local/mysql/var/monFichier.csv' (Errcode &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: 2)</span></code><br />
même si les droits en lecture sont positionnés correctement.</p>
<p>Il existe deux moyens de résoudre cette erreur :</p>
<p><span id="more-93"></span></p>
<p>Rappel de la syntaxe générale :</p>
<pre>LOAD DATA INFILE 'monFichier.csv'
REPLACE
INTO TABLE `maBase`.`maTable`
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
LINES STARTING BY '' TERMINATED BY '\n'
IGNORE 1 LINES
(champ1, champ4, champ5)</pre>
<p>Ceci permet de charger le fichier <i>monFichier.csv</i> dans la table <i>maTable</i> de la base <i>maBase</i>. Les lignes déjà présente seront remplacées (option <code class="codecolorer text default"><span class="text">REPLACE</span></code>) ou peuvent être ignorées (option <code class="codecolorer text default"><span class="text">IGNORE</span></code>).</p>
<p>On peut préciser les caractères délimitant les colonnes (<code class="codecolorer text default"><span class="text">FIELDS</span></code>) et les lignes (<code class="codecolorer text default"><span class="text">LINES</span></code>) du fichier source. Dans notre cas, les colonnes sont séparées par des tabulations (\t) et éventuellement encadrées de doubles quotes (&laquo;&nbsp;) si elles devaient contenir des tabulations comme données. Le caractère d&rsquo;échappement des caractères spéciaux poivant être employé est l&rsquo;antislash (\). Les lignes commencent directement par des données (aucun caractère spécifique n&rsquo;est spécifié) et terminent par un saut de ligne (\n). La ligne n°1 d&rsquo;entête sera ignorée.</p>
<p>Les champs de la table à remplir avec les données du fichier sont les colonnes <i>champ1</i>, <i>champ4</i> et <i>champ5</i>.</p>
<p>Et voila, MySQL devrait vous retourner un message du type :</p>
<pre>Query OK, 309 rows affected (0,01 sec)
Records: 309  Deleted: 0  Skipped: 0  Warnings: 0</pre>
<p>On peut aussi utiliser l&rsquo;option <code class="codecolorer text default"><span class="text">LOCAL</span></code> de <code class="codecolorer text default"><span class="text">LOAD DATA INFILE</span></code> si on a les droits <code class="codecolorer text default"><span class="text">FILE</span></code>.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
