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.