SQLite-kommandolinjegrænsefladen har en praktisk punktkommando kaldet .mode
, som giver dig mulighed for at ændre den måde, forespørgselsresultater formateres på.
En af værdierne du kan bruge med denne kommando er insert
. Brug af denne værdi resulterer i, at alle efterfølgende forespørgselsresultater formateres som en SQL INSERT
erklæring.
SQLite-standardindstillinger
For det første, her er, hvordan dine normale resultater kan se ud (forudsat at du bruger standardindstillingerne for SQLite).
SELECT * FROM Products;
Resultat:
1|Widget Holder|139.5 2|Widget Opener|89.7 3|Widgets - 6 Pack|374.2 4|Blue Widget|63.0
Resultater som INSERT-erklæring
Her er, hvordan du ændrer det, så resultaterne formateres som en SQL INSERT
erklæring:
.mode insert Products2
Denne erklæring specificerer Produkter2 som den tabel, som dataene vil blive indsat i. Du skal angive navnet på den tabel, som du vil indsætte dataene i.
Nu når jeg kører den forrige SELECT
sætning igen, de udlæses som en INSERT
erklæring.
SELECT * FROM Products;
Resultat:
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);
Gem dette format
Når du åbner SQLite i et nyt terminalvindue, mister du disse indstillinger. Med andre ord vil SQLite vende tilbage til sit standardoutputformat (som er en rørsepareret liste).
Du kan dog faktisk angive dine egne standardindstillinger ved at gemme ovenstående indstillinger i en tekstfil.
For at gøre dette skal du indtaste følgende i en tekstfil:
.mode insert NewTable
Gem derefter filen som .sqliterc
i din/(brugerens) hjemmemappe.
Når du nu opretter forbindelse til SQLite i et nyt terminalvindue, vil det bruge disse indstillinger i stedet for standardindstillingerne for SQLite.
Dette eksempel bruger NewTable som måltabellen, men du kan bruge, hvad du vil.
Det eneste problem med at gøre dette er naturligvis, at du bliver nødt til at ændre navnet på tabellen, hvis den ændres. Og hvis du har brug for at gå ind i besværet med at gøre det, kan det være nemmere blot at ændre det på farten med .mode insert NewTable
(i stedet for at skulle finde/erstatte tabelnavnet). Under alle omstændigheder er det en mulighed, hvis du har brug for det.