Je dois vider un fichier .sql ou .csv dans SQLite (j'utilise l'API SQLite3). Je n'ai trouvé que de la documentation pour importer / charger des tables, pas des bases de données entières. En ce moment, quand je tape:
sqlite3prompt> .import FILENAME TABLE
J'obtiens une erreur de syntaxe, car il attend une table et non une base de données entière.
database
sqlite
import
sqlite-shell
happythenewsad
la source
la source
Réponses:
Pour importer à partir d'un fichier SQL, utilisez les éléments suivants:
Pour importer à partir d'un fichier CSV, vous devrez spécifier le type de fichier et la table de destination:
la source
Essayez de le faire à partir de la commande comme:
Cela ne fonctionnera évidemment qu'avec les instructions SQL dans dump.sql. Je ne sais pas comment importer un CSV.
la source
.mode csv
sqlite3 database.db < dump.sql
c'est SOOOO SLOW !!! Alors utilisezcat dump.sql | sqlite3 database.db
plutôt! : DPour passer de SCRATCH avec SQLite DB à l'importation du CSV dans une table:
sqlite3 <your_db_file_name>
* Il sera créé en tant que fichier vide.CREATE TABLE <table_Name> (<field_name1> <Type>, <field_name2> <type>);
Une fois que vous avez créé la table et que les colonnes correspondent à vos données du fichier, vous pouvez faire ce qui précède ...
la source
La commande sqlite3 .import ne fonctionnera pas pour les données csv ordinaires car elle traite toute virgule comme un délimiteur, même dans une chaîne entre guillemets.
Cela inclut d'essayer de réimporter un fichier csv qui a été créé par le shell:
Il semble que nous devions transformer le csv en une liste d'instructions Insert, ou peut-être qu'un délimiteur différent fonctionnera.
Chez SuperUser, j'ai vu une suggestion d'utiliser LogParser pour traiter les fichiers csv, je vais examiner cela.
la source
Si vous êtes heureux d'utiliser un script (python), il existe un script python qui automatise cela à: https://github.com/rgrp/csv2sqlite
Cela créera automatiquement la table pour vous, ainsi que des calculs de base de type et de conversion de données pour vous (ainsi, par exemple, cela fonctionnera comme un nombre et définira le type de colonne sur "réel").
la source
sqlite3.ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings
# csv2sqlite.py {csv-file-path} {sqlite-db-path} [{table-name}]N'oubliez pas que le délimiteur par défaut pour SQLite est le tube "|"
http://sqlite.awardspace.info/syntax/sqlitepg01.htm#sqlite010
la source
SQLite est extrêmement flexible car il autorise également les commandes dot spécifiques à SQLite dans la syntaxe SQL (bien qu'elles soient interprétées par CLI). Cela signifie que vous pouvez faire des choses comme celle-ci.
Créez un
sms
tableau comme celui-ci:Puis deux fichiers:
Pour tester l'importation du fichier CSV à l'aide du fichier SQL, exécutez:
En conclusion, cela signifie que vous pouvez utiliser l'
.import
instruction dans SQLite SQL, comme vous pouvez le faire dans n'importe quel autre RDB, comme MySQL avecLOAD DATA INFILE
etc. Cependant, ce n'est pas recommandé.la source
Consultez les termesql. https://gitorious.org/termsql https://gitorious.org/termsql/pages/Home
Il convertit le texte en SQL sur la ligne de commande. (CSV est juste du texte)
Exemple:
Par défaut, le délimiteur est un espace, donc pour le faire fonctionner avec CSV qui utilise des virgules, vous le feriez comme ceci:
vous pouvez également le faire:
Par défaut, il générera les noms de colonne "COL0", "COL1", si vous voulez qu'il utilise la première ligne pour les noms de colonnes, procédez comme suit:
Si vous souhaitez définir des noms de colonnes personnalisés, procédez comme suit:
la source
si vous l'utilisez dans Windows, assurez-vous d'ajouter le chemin de la base de données dans "" et d'utiliser également la double barre oblique \ dans le chemin pour vous assurer que Windows le comprend.
la source
Voici comment vous pouvez insérer dans une colonne d'identité:
myfile.txt est un fichier dans C: \ code \ db \ predefined \
data.db est dans C: \ code \ db \
myfile.txt contient des chaînes séparées par un caractère de nouvelle ligne.
Si vous souhaitez ajouter plus de colonnes, il est plus facile de les séparer à l'aide du caractère pipe, qui est la valeur par défaut.
la source
Importez votre csv ou sql vers sqlite avec phpLiteAdmin , c'est excellent.
la source