SQLite
 sql >> Database >  >> RDS >> SQLite

Output dei risultati della query SQLite come istruzione INSERT

L'interfaccia della riga di comando di SQLite ha un pratico comando punto chiamato .mode , che ti consente di modificare il modo in cui vengono formattati i risultati della query.

Uno dei valori che puoi usare con questo comando è insert . L'utilizzo di questo valore comporta la formattazione di tutti i risultati della query successiva come un INSERT SQL dichiarazione.

Impostazioni predefinite SQLite

Innanzitutto, ecco come potrebbero apparire i tuoi risultati normali (supponendo che tu stia utilizzando le impostazioni predefinite di SQLite).

SELECT * FROM Products;

Risultato:

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

Risultati come istruzione INSERT

Ora ecco come cambiarlo in modo che i risultati siano formattati come SQL INSERT dichiarazione:

.mode insert Products2

Tale affermazione specifica Prodotti2 come la tabella in cui verranno inseriti i dati. Dovresti specificare il nome della tabella in cui vuoi inserire i dati.

Ora quando eseguo il precedente SELECT di nuovo, vengono emessi come un INSERT dichiarazione.

SELECT * FROM Products;

Risultato:

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);

Salva questo formato

Quando apri SQLite in una nuova finestra del terminale, perderai queste impostazioni. In altre parole, SQLite tornerà al suo formato di output predefinito (che è un elenco separato da pipe).

Tuttavia, puoi effettivamente specificare le tue impostazioni predefinite salvando le impostazioni di cui sopra in un file di testo.

Per fare ciò, inserisci quanto segue in un file di testo:

.mode insert NewTable

Quindi salva quel file come .sqliterc nella tua/(dell'utente) home directory.

Ora, quando ti connetti a SQLite in una nuova finestra del terminale, utilizzerà quelle impostazioni invece delle impostazioni SQLite predefinite.

Questo esempio usa NewTable come tabella di destinazione ma puoi usare quello che vuoi.

Ovviamente, l'unico problema con questo è che dovrai cambiare il nome della tabella se cambia. E se hai bisogno di prenderti la briga di farlo, potrebbe essere più semplice cambiarlo semplicemente al volo con .mode insert NewTable (invece di dover trovare/sostituire il nome della tabella). In ogni caso, è un'opzione se ne hai bisogno.