Vous voulez utiliser le .import
commandement. Par exemple :
$ cat demotab.txt
44 92
35 94
43 94
195 49
66 28
135 93
135 91
67 84
135 94
$ echo "create table mytable (col1 int, col2 int);" | sqlite3 foo.sqlite
$ echo ".import demotab.txt mytable" | sqlite3 foo.sqlite
$ sqlite3 foo.sqlite
-- Loading resources from /Users/ramanujan/.sqliterc
SQLite version 3.6.6.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from mytable;
col1 col2
44 92
35 94
43 94
195 49
66 28
135 93
135 91
67 84
135 94
Notez que cette commande de chargement en masse n'est pas SQL mais plutôt une fonctionnalité personnalisée de SQLite. En tant que telle, elle a une syntaxe bizarre parce que nous la transmettons par l'intermédiaire de echo
à l'interpréteur de ligne de commande interactif, sqlite3
.
En PostgreSQL, l'équivalent est COPY FROM
: http://www.postgresql.org/docs/8.1/static/sql-copy.html
Dans MySQL, c'est LOAD DATA LOCAL INFILE
: http://dev.mysql.com/doc/refman/5.1/en/load-data.html
Une dernière chose : n'oubliez pas de faire attention à la valeur de l'option .separator
. C'est un piège très courant lorsque l'on fait des insertions en vrac.
sqlite> .show .separator
echo: off
explain: off
headers: on
mode: list
nullvalue: ""
output: stdout
separator: "\t"
width:
Vous devez explicitement définir le séparateur comme étant un espace, une tabulation ou une virgule avant d'utiliser la commande .import
.
0 votes
Très pertinent : stackoverflow.com/questions/1711631/