sql >> Database >  >> RDS >> SQLite

SQLite-queryresultaten uitvoeren als een INSERT-instructie

De SQLite-opdrachtregelinterface heeft een handig puntcommando genaamd .mode , waarmee u de opmaak van zoekopdrachtresultaten kunt wijzigen.

Een van de waarden die u met deze opdracht kunt gebruiken is insert . Als u deze waarde gebruikt, worden alle volgende queryresultaten opgemaakt als een SQL INSERT verklaring.

SQLite-standaardinstellingen

Ten eerste, hier is hoe uw normale resultaten eruit kunnen zien (ervan uitgaande dat u de standaard SQLite-instellingen gebruikt).

SELECT * FROM Products;

Resultaat:

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

Resultaten als INSERT-instructie

Hier leest u hoe u dit kunt wijzigen zodat de resultaten worden opgemaakt als een SQL INSERT verklaring:

.mode insert Products2

Die verklaring specificeert Producten2 als de tabel waarin de gegevens worden ingevoegd. U moet de naam opgeven van de tabel waarin u de gegevens wilt invoegen.

Als ik nu de vorige SELECT . uitvoer statement opnieuw, ze worden uitgevoerd als een INSERT verklaring.

SELECT * FROM Products;

Resultaat:

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

Dit formaat opslaan

Wanneer u SQLite in een nieuw terminalvenster opent, verliest u deze instellingen. Met andere woorden, SQLite keert terug naar het standaard uitvoerformaat (dit is een door buizen gescheiden lijst).

U kunt echter uw eigen standaardinstellingen opgeven door de bovenstaande instellingen in een tekstbestand op te slaan.

Voer hiervoor het volgende in een tekstbestand in:

.mode insert NewTable

Sla dat bestand vervolgens op als .sqliterc in uw/(de gebruiker) home directory.

Wanneer u nu verbinding maakt met SQLite in een nieuw terminalvenster, zal het die instellingen gebruiken in plaats van de standaard SQLite-instellingen.

In dit voorbeeld wordt NewTable als doeltabel gebruikt, maar u kunt gebruiken wat u maar wilt.

Het enige probleem hiermee is natuurlijk dat u de naam van de tabel moet wijzigen als deze verandert. En als je de moeite moet nemen om dat te doen, is het misschien makkelijker om het gewoon on-the-fly te veranderen met .mode insert NewTable (in plaats van de tabelnaam te moeten zoeken/vervangen). Het is in ieder geval een optie als je het nodig hebt.


  1. JSON_REMOVE() – Gegevens verwijderen uit een JSON-document in MySQL

  2. Tips voor het gebruik van SQL Server met Salesforce

  3. Ga naar testgestuurde databaseontwikkeling (TDDD)

  4. datetime vs smalldatetime in SQL Server:wat is het verschil?