sql >> Databasteknik >  >> RDS >> SQLite

Mata ut SQLite-frågeresultat som ett INSERT-uttalande

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.


  1. GETUTCDATE() Exempel i SQL Server (T-SQL)

  2. MySQL Conditional Insert

  3. psql:kunde inte ansluta till servern:Ingen sådan fil eller katalog (Mac OS X)

  4. Hur skapar man en databas i SQL?