sql >> Database >  >> RDS >> SQLite

Genereer INSERT-instructies van SQLite-queryresultaten

De SQLite-opdrachtregelinterface biedt ons de mogelijkheid om automatisch SQL INSERT te genereren uitspraken van een query. Dit kan worden gedaan door de uitvoermodus te wijzigen in insert .

Voorbeeld

Stel dat we de volgende tabel hebben:

SELECT * FROM Pets;

Resultaat:

+-------+---------+--------+
| PetId | PetName | TypeId |
+-------+---------+--------+
| 1     | Homer   | 3      |
| 2     | Yelp    | 1      |
| 3     | Fluff   | 2      |
| 4     | Brush   | 4      |
+-------+---------+--------+

Toen ik dat voorbeeld uitvoerde, gebruikte ik de tabelmodus. Tabelmodus presenteert de uitvoer van de query als een tabel en is een van de verschillende uitvoermodi in tabelvorm in SQLite.

We kunnen het als volgt wijzigen in de invoegmodus:

.mode insert Pets2

Wanneer u overschakelt naar de invoegmodus, moet u de naam opgeven van de tabel waarin de gegevens worden ingevoegd. In mijn geval heb ik Pets2 opgegeven , zodat de gegevens in die tabel worden ingevoegd.

Als we nu dezelfde SQL-query uitvoeren als voorheen, krijgen we een aantal INSERT uitspraken:

SELECT * FROM Pets;

Resultaat:

INSERT INTO Pets2 VALUES(1,'Homer',3);
INSERT INTO Pets2 VALUES(2,'Yelp',1);
INSERT INTO Pets2 VALUES(3,'Fluff',2);
INSERT INTO Pets2 VALUES(4,'Brush',4);

Wanneer u deze waarden in een tabel gaat invoegen, moet u natuurlijk eerst controleren of de tabel bestaat. U kunt ofwel een tabel maken met de juiste naam, of invoegen in een bestaande.


  1. JDBC retourneert MySQLSyntaxError Exception met de juiste instructie

  2. Resultaat van dynamische SQL in een variabele voor sql-server krijgen

  3. Recursieve CTE schrijven met behulp van Entity Framework Fluent-syntaxis of Inline-syntaxis

  4. Heeft Mysql een equivalent van @@ROWCOUNT zoals in mssql?