¿Cómo copiar una tabla sqlite basada en disco a una base de datos de memoria en python? Sé el esquema de la mesa.¿Cómo copiar una tabla sqlite desde una base de datos de disco a una base de datos de memoria en python?
Respuesta
este código es más general, pero tal vez puede ayudar a:
import sqlite3
new_db = sqlite3.connect(':memory:') # create a memory database
old_db = sqlite3.connect('test.db')
query = "".join(line for line in old_db.iterdump())
# Dump old database in the new one.
new_db.executescript(query)
EDIT: para conseguir su especifique la tabla sólo se puede cambiar en el bucle de esta manera:
name_table = "test_table" # name of the table that you want to get.
for line in old_db.iterdump():
if name_table in line:
query = line
break
Consulte el SQLite Backup API. El ejemplo está en C, pero esto debería mostrar cómo se hace de manera eficiente.
Desafortunadamente, no conozco ningún C. Creo que oí en algún lado que apsw (otro Python Sqlite Wrapper) tenía una función de respaldo. ¿Es esto cierto? – Clay
útil :) ¡solo necesito algo como esto! Great thx –
'sqlite3_backup *' Las funciones C no están disponibles a través de Python sqlite3 API. Aunque debería ser fácil crear una extensión C para Python que los llame – jfs
Una alternativa, para aquellos que utilizan pitón y sqlalchemy:
http://www.tylerlesmann.com/2009/apr/27/copying-databases-across-platforms-sqlalchemy/
La idea detrás es replicar los metadatos de la base de datos de origen a la base de datos destino y luego transferir la columna después de la columna.
- 1. Cómo copiar datos de una base de datos/tabla a otra base de datos/tabla
- 2. Copiar datos de una tabla en una base de datos a otra base de datos separada
- 3. Guardando en disco una base de datos en memoria
- 4. Cómo copiar una tabla de una base de datos mysql a otra base de datos mysql
- 5. ¿Cómo puedo crear una base de datos sqlite en memoria?
- 6. Android - ¿Existe una base de datos SQLite?
- 7. Cómo copiar vistas de una base de datos a otra base de datos
- 8. ¿Crear una base de datos desde otra base de datos?
- 9. ¿Cómo eliminar desde una base de datos?
- 10. Quiero copiar la tabla contenida en una base de datos e insertarla en otra tabla de base de datos
- 11. Mover una tabla de una base de datos a otra base de datos SQL Server
- 12. Cómo convertir una base de datos postgres a sqlite
- 13. Copie la tabla de una base de datos a otra
- 14. Copiando una base de datos en MySQL, ¿cómo copiar vistas?
- 15. ¿Cómo conecto CakePHP a una base de datos SQLite?
- 16. ¿Cómo convertir una base de datos JET a SQLite?
- 17. ¿Cómo crear una tabla en una base de datos particular?
- 18. PHP/SQLite - Copia de una tabla del disco a la memoria
- 19. Replicación punto a punto de una base de datos sqlite
- 20. ¿Cómo puedo obtener la lista de columnas en una tabla para una base de datos SQLite?
- 21. ¿Cómo eliminar una fila en una tabla de base de datos sqlite?
- 22. Insertar .csvs en una base de datos SQLite en Java
- 23. Número de filas en una base de datos SQLite
- 24. Restauración de una tabla MySQL a la base de datos
- 25. ¿Puede sqlite ser una base de datos inmemory también?
- 26. Cargar una base de datos innodb MySQL en la memoria
- 27. ¿Cómo crear una base de datos sqlite en javascript?
- 28. ¿Cómo implementar una base de datos SQLite en Phonegap?
- 29. ¿Cómo debo proteger una base de datos SQLite en iOS?
- 30. Base de datos temporal en memoria en SQLite
Parece que funciona, pero ¿qué tan eficiente es? – Clay
@Clay: como he escrito en mi respuesta, este código es más general y genérico, puede usarlo para volcar toda la base de datos o para volcar solo una tabla dada, y para qué tan eficiente es? el código usa el iterador por una vez (menos memoria) y también crea toda la base de datos en una sola consulta, lo que significa no subir y bajar (menos comunicación). – mouad
Gracias! Esto me ayudará mucho. Me gusta la flexibilidad de eso. – Clay