SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Resultados da consulta SQLite como uma instrução INSERT


A interface de linha de comando do SQLite tem um comando de ponto útil chamado .mode , que permite alterar a forma como os resultados da consulta são formatados.

Um dos valores que você pode usar com este comando é insert . O uso desse valor faz com que todos os resultados de consulta subsequentes sejam formatados como SQL INSERT demonstração.

Configurações padrão do SQLite


Primeiro, veja como podem ser seus resultados normais (supondo que você esteja usando as configurações padrão do 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 declaração INSERT


Agora, veja como alterá-lo para que os resultados sejam formatados como um SQL INSERT demonstração:
.mode insert Products2

Essa declaração especifica Produtos2 como a tabela na qual os dados serão inseridos. Você precisaria especificar o nome da tabela na qual deseja inserir os dados.

Agora, quando executo o SELECT anterior declaração novamente, eles são emitidos como um INSERT demonstração.
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);

Salvar este formato


Ao abrir o SQLite em uma nova janela de terminal, você perderá essas configurações. Em outras palavras, o SQLite voltará ao formato de saída padrão (que é uma lista separada por pipe).

No entanto, você pode especificar suas próprias configurações padrão salvando as configurações acima em um arquivo de texto.

Para fazer isso, digite o seguinte em um arquivo de texto:
.mode insert NewTable

Em seguida, salve esse arquivo como .sqliterc no diretório inicial do seu/(do usuário).

Agora, quando você se conectar ao SQLite em uma nova janela de terminal, ele usará essas configurações em vez das configurações padrão do SQLite.

Este exemplo usa NewTable como tabela de destino, mas você pode usar o que quiser.

Obviamente, o único problema em fazer isso é que você precisará alterar o nome da tabela se ela mudar. E se você precisar se dar ao trabalho de fazer isso, pode ser mais fácil simplesmente alterá-lo rapidamente com .mode insert NewTable (em vez de precisar localizar/substituir o nome da tabela). De qualquer forma, é uma opção se você precisar.