Necesito volcar un archivo .sql o .csv en SQLite (estoy usando la API SQLite3). Solo encontré documentación para importar / cargar tablas, no bases de datos completas. Ahora mismo, cuando escribo:
sqlite3prompt> .import FILENAME TABLE
Recibo un error de sintaxis, ya que se espera una tabla y no una base de datos completa.
database
sqlite
import
sqlite-shell
happythenewstriste
fuente
fuente
Respuestas:
Para importar desde un archivo SQL, utilice lo siguiente:
Para importar desde un archivo CSV, deberá especificar el tipo de archivo y la tabla de destino:
fuente
Intente hacerlo desde el comando como:
Obviamente, esto solo funcionará con declaraciones SQL en dump.sql. No estoy seguro de cómo importar un CSV.
fuente
.mode csv
sqlite3 database.db < dump.sql
es MUY LENTO! ¡Así que usacat dump.sql | sqlite3 database.db
en su lugar! : DPara pasar de SCRATCH con SQLite DB a importar el CSV a una tabla:
sqlite3 <your_db_file_name>
* Se creará como un archivo vacío.CREATE TABLE <table_Name> (<field_name1> <Type>, <field_name2> <type>);
Una vez que haya creado la tabla y las columnas coincidan con sus datos del archivo, puede hacer lo anterior ...
fuente
El comando sqlite3 .import no funcionará para datos csv ordinarios porque trata cualquier coma como un delimitador incluso en una cadena entre comillas.
Esto incluye intentar volver a importar un archivo csv creado por el shell:
Parece que debemos transformar el csv en una lista de declaraciones Insert, o quizás funcione un delimitador diferente.
En SuperUser vi una sugerencia para usar LogParser para manejar archivos csv, voy a investigar eso.
fuente
Si está contento de usar una secuencia de comandos (python), hay una secuencia de comandos de Python que automatiza esto en: https://github.com/rgrp/csv2sqlite
Esto creará automáticamente la tabla para usted, así como también hará algunas adivinaciones básicas de tipo y conversión de datos (por ejemplo, resolverá que algo es un número y establecerá el tipo de columna en "real").
fuente
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}]Recuerde que el delimitador predeterminado para SQLite es la barra vertical "|"
http://sqlite.awardspace.info/syntax/sqlitepg01.htm#sqlite010
fuente
SQLite es extremadamente flexible ya que también permite los comandos de puntos específicos de SQLite en la sintaxis SQL (aunque son interpretados por CLI). Esto significa que puede hacer cosas como esta.
Crea una
sms
tabla como esta:Luego dos archivos:
Para probar la importación del archivo CSV usando el archivo SQL, ejecute:
En conclusión, esto significa que puede usar la
.import
declaración en SQLite SQL, tal como puede hacerlo en cualquier otro RDB, como MySQL conLOAD DATA INFILE
etc. Sin embargo, esto no se recomienda.fuente
Consulte termsql. https://gitorious.org/termsql https://gitorious.org/termsql/pages/Home
Convierte texto a SQL en la línea de comandos. (CSV es solo texto)
Ejemplo:
De forma predeterminada, el delimitador es un espacio en blanco, por lo que para que funcione con CSV que usa comas, lo haría así:
alternativamente, puede hacer esto:
De forma predeterminada, generará los nombres de columna "COL0", "COL1", si desea que utilice la primera fila para los nombres de las columnas, haga lo siguiente:
Si desea establecer nombres de columna personalizados, haga esto:
fuente
si lo está usando en Windows, asegúrese de agregar la ruta a la base de datos en "" y también de usar doble barra \ en la ruta para asegurarse de que Windows lo entienda.
fuente
Así es como puede insertar en una columna de identidad:
myfile.txt es un archivo en C: \ code \ db \ predefined \
data.db está en C: \ code \ db \
myfile.txt contiene cadenas separadas por un carácter de nueva línea.
Si desea agregar más columnas, es más fácil separarlas usando el carácter de barra vertical, que es el predeterminado.
fuente
Importe su csv o sql a sqlite con phpLiteAdmin , es excelente.
fuente