Amelioration d'une importation d'un CSV dans une base
Bonjour,
J'importe un fichier CSV dans une base de donnée postgreSQL comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
tmpfile1=`mktemp`
IDIMPORT=`cat idImport.txt`
inputFile=fichier.csv
cat $inputFile | while read line; do
VAR1=`echo $line | awk -F "|" '{ print $1}'`
VAR2=`echo $line | awk -F "|" '{ print $2}'`
SQL="INSERT INTO key_value (kv_name, kv_value, id_import) VALUES ('$VAR1', '$VAR2', CAST('$IDIMPORT' AS INTEGER));"
echo $SQL >> $tmpfile1
done
psql -U user infoClient < $tmpfile1
rm -f tmpfile1 |
D'après un de mes tuteurs de stage, il serait plus interessant de ne pas passer par une boucle qui impose une multitude de querry à ma base de données.
Il serait possible d'envoyer la totalité d'un fichier csv dans une base de données, mais je ne vois pas trop comment ^^ . J'ai deja eu du mal a trouver cette solution ci :).
Quelqu'un aurait deja essayé ?