SQLite-kommandolinjegrænsefladen giver os mulighed for automatisk at generere SQL INSERT
udsagn fra en forespørgsel. Dette kan gøres ved at ændre output-tilstanden til insert
.
Eksempel
Antag, at vi har følgende tabel:
SELECT * FROM Pets;
Resultat:
+-------+---------+--------+ | PetId | PetName | TypeId | +-------+---------+--------+ | 1 | Homer | 3 | | 2 | Yelp | 1 | | 3 | Fluff | 2 | | 4 | Brush | 4 | +-------+---------+--------+
Da jeg kørte det eksempel, brugte jeg tabeltilstand. Tabeltilstand præsenterer forespørgselsoutputtet som en tabel og er en af flere tabelformede outputtilstande i SQLite.
Vi kan ændre det til indsættelsestilstand som denne:
.mode insert Pets2
Når du skifter til indsættelsestilstand, skal du angive navnet på den tabel, som dataene skal indsættes i. I mit tilfælde specificerede jeg Pets2
, så dataene vil blive indsat i den tabel.
Når vi nu kører den samme SQL-forespørgsel som før, får vi en masse INSERT
udsagn:
SELECT * FROM Pets;
Resultat:
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);
Når du går for at indsætte disse værdier i en tabel, skal du selvfølgelig først sørge for, at tabellen eksisterer. Du kan enten oprette en tabel med det korrekte navn eller indsætte i en eksisterende.