Dieser Artikel enthält drei Möglichkeiten zum Generieren eines SQL-Skripts aus einer vorhandenen Tabelle in SQLite.
Alle drei Methoden erzeugen die CREATE TABLE
Skript, aber die letzte Methode generiert auch den INSERT
Anweisungen zum Einfügen der Daten.
Der .schema-Befehl
Wenn Sie nur die Tabellenstruktur skripten möchten (d. h. ohne ihre Daten), können Sie das .schema
verwenden Befehl.
Verwenden Sie dazu einfach .schema
gefolgt vom Namen der Tabelle, die Sie skripten möchten.
Hier ist ein Beispiel:
.schema Genre
Ergebnis:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) );
In diesem Fall habe ich das Genre
geschrieben Tabelle.
Sie können den Musterabgleich auch mit .schema
verwenden Befehl.
Der folgende Befehl gibt beispielsweise das gleiche Ergebnis wie der vorherige zurück:
.schema Gen%
Sie können auch das .schema
verwenden Befehl, um die gesamte Datenbank zu skripten. Verwenden Sie dazu einfach den Befehl ohne Argument. So:
.schema
Standardmäßig .schema
zeigt das Schema für alle angehängten Datenbanken. Wenn Sie nur das Schema für eine einzelne Datenbank sehen möchten, können Sie ein Argument hinzufügen, um die Datenbank(en) anzugeben, an denen Sie interessiert sind.
Zum Beispiel:
.schema main.*
Die sqlite_master-Tabelle
Eine Alternative zu .schema
besteht darin, den sqlite_master direkt abzufragen Tisch. Diese Tabelle enthält eine Spalte namens sql , die das zum Erstellen der Tabelle verwendete SQL enthält.
Hier ist ein Beispiel:
SELECT sql FROM sqlite_master WHERE tbl_name = 'Genre';
Ergebnis:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) )
Tabellendaten einbeziehen
Wenn Sie alle Daten haben möchten, verwenden Sie die .dump
Befehl. Dieser Befehl schreibt die CREATE TABLE
-Anweisung sowie das INSERT
Anweisungen zum Einfügen aller Daten in die Tabelle.
Hier ist ein Beispiel:
.dump Genre
Ergebnis:
PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) ); INSERT INTO Genre VALUES(1,'Rock'); INSERT INTO Genre VALUES(2,'Jazz'); INSERT INTO Genre VALUES(3,'Metal'); INSERT INTO Genre VALUES(4,'Alternative & Punk'); INSERT INTO Genre VALUES(5,'Rock And Roll'); INSERT INTO Genre VALUES(6,'Blues'); INSERT INTO Genre VALUES(7,'Latin'); INSERT INTO Genre VALUES(8,'Reggae'); INSERT INTO Genre VALUES(9,'Pop'); INSERT INTO Genre VALUES(10,'Soundtrack'); INSERT INTO Genre VALUES(11,'Bossa Nova'); INSERT INTO Genre VALUES(12,'Easy Listening'); INSERT INTO Genre VALUES(13,'Heavy Metal'); INSERT INTO Genre VALUES(14,'R&B/Soul'); INSERT INTO Genre VALUES(15,'Electronica/Dance'); INSERT INTO Genre VALUES(16,'World'); INSERT INTO Genre VALUES(17,'Hip Hop/Rap'); INSERT INTO Genre VALUES(18,'Science Fiction'); INSERT INTO Genre VALUES(19,'TV Shows'); INSERT INTO Genre VALUES(20,'Sci Fi & Fantasy'); INSERT INTO Genre VALUES(21,'Drama'); INSERT INTO Genre VALUES(22,'Comedy'); INSERT INTO Genre VALUES(23,'Alternative'); INSERT INTO Genre VALUES(24,'Classical'); INSERT INTO Genre VALUES(25,'Opera'); COMMIT;