SQLites kommandoradsgränssnitt har ett praktiskt punktkommando som heter .mode
, som låter dig ändra hur frågeresultat formateras.
Ett av värdena du kan använda med det här kommandot är insert
. Att använda detta värde resulterar i att alla efterföljande frågeresultat formateras som en SQL INSERT
uttalande.
SQLite Standardinställningar
Först, här är hur dina normala resultat kan se ut (förutsatt att du använder standardinställningarna för 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
Resultat som INSERT-påstående
Så här ändrar du det så att resultaten formateras som en SQL INSERT
uttalande:
.mode insert Products2
Det uttalandet anger Produkter2 som den tabell som data kommer att infogas i. Du måste ange namnet på tabellen som du vill infoga data i.
Nu när jag kör föregående SELECT
uttalandet igen, matas de ut som en INSERT
uttalande.
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);
Spara detta format
När du öppnar SQLite i ett nytt terminalfönster förlorar du dessa inställningar. Med andra ord kommer SQLite att återgå till sitt standardutdataformat (som är en rörseparerad lista).
Men du kan faktiskt ange dina egna standardinställningar genom att spara ovanstående inställningar i en textfil.
För att göra detta, skriv in följande i en textfil:
.mode insert NewTable
Spara sedan filen som .sqliterc
i din/(användarens) hemkatalog.
När du nu ansluter till SQLite i ett nytt terminalfönster kommer den att använda dessa inställningar istället för standardinställningarna för SQLite.
Det här exemplet använder NewTable som måltabell men du kan använda vad du vill.
Uppenbarligen är det enda problemet med att göra detta att du måste ändra namnet på tabellen om den ändras. Och om du behöver gå in i besväret med att göra det, kan det vara lättare att helt enkelt ändra det i farten med .mode insert NewTable
(istället för att behöva hitta/ersätta tabellnamnet). I alla fall är det ett alternativ om du behöver det.