sql >> Base de Datos >  >> RDS >> SQLite

Salida de resultados de consultas de SQLite como una instrucción INSERT

La interfaz de línea de comandos de SQLite tiene un práctico comando de punto llamado .mode , que le permite cambiar la forma en que se formatean los resultados de la consulta.

Uno de los valores que puede usar con este comando es insert . El uso de este valor da como resultado que todos los resultados de las consultas posteriores tengan el formato SQL INSERT declaración.

Configuración predeterminada de SQLite

Primero, así es como se verían sus resultados normales (suponiendo que esté usando la configuración predeterminada de SQLite).

SELECT * FROM Products;

Resultado:

1|Widget Holder|139.5
2|Widget Opener|89.7
3|Widgets - 6 Pack|374.2
4|Blue Widget|63.0

Resultados como declaración INSERT

Ahora, aquí se explica cómo cambiarlo para que los resultados tengan el formato SQL INSERT declaración:

.mode insert Products2

Esa declaración especifica Productos2 como la tabla en la que se insertarán los datos. Deberá especificar el nombre de la tabla en la que desea insertar los datos.

Ahora, cuando ejecuto el anterior SELECT declaración de nuevo, se muestran como un INSERT declaración.

SELECT * FROM Products;

Resultado:

INSERT INTO Products2 VALUES(1,'Widget Holder',139.49999999999999999);
INSERT INTO Products2 VALUES(2,'Widget Opener',89.700000000000002838);
INSERT INTO Products2 VALUES(3,'Widgets - 6 Pack',374.19999999999998862);
INSERT INTO Products2 VALUES(4,'Blue Widget',63.000000000000000001);

Guardar este formato

Cuando abra SQLite en una nueva ventana de terminal, perderá esta configuración. En otras palabras, SQLite volverá a su formato de salida predeterminado (que es una lista separada por conductos).

Sin embargo, puede especificar su propia configuración predeterminada guardando la configuración anterior en un archivo de texto.

Para hacer esto, ingrese lo siguiente en un archivo de texto:

.mode insert NewTable

Luego guarde ese archivo como .sqliterc en su directorio de inicio (el del usuario).

Ahora, cuando se conecte a SQLite en una nueva ventana de terminal, utilizará esa configuración en lugar de la configuración predeterminada de SQLite.

Este ejemplo usa NewTable como la tabla de destino, pero puede usar lo que quiera.

Obviamente, el único problema de hacer esto es que necesitará cambiar el nombre de la tabla si cambia. Y si necesita tomarse la molestia de hacer eso, podría ser más fácil simplemente cambiarlo sobre la marcha con .mode insert NewTable (en lugar de tener que buscar/reemplazar el nombre de la tabla). En cualquier caso, es una opción si la necesitas.