Dit artikel bevat drie manieren om een SQL-script te genereren uit een bestaande tabel in SQLite.
Alle drie de methoden genereren de CREATE TABLE
script, maar de laatste methode genereert ook de INSERT
instructies voor het invoegen van de gegevens.
Het .schema-commando
Als u alleen de tabelstructuur wilt scripten (d.w.z. zonder de gegevens), kunt u de .schema
gebruiken opdracht.
Gebruik hiervoor gewoon .schema
gevolgd door de naam van de tabel die u wilt scripten.
Hier is een voorbeeld:
.schema Genre
Resultaat:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) );
In dit geval heb ik het Genre
gescript tafel.
U kunt patroonovereenkomst ook gebruiken met het .schema
opdracht.
De volgende opdracht geeft bijvoorbeeld hetzelfde resultaat als de vorige:
.schema Gen%
U kunt ook het .schema
. gebruiken commando om de hele database te scripten. Om dit te doen, gebruikt u eenvoudig de opdracht zonder een argument. Zoals dit:
.schema
Standaard, .schema
toont het schema voor alle gekoppelde databases. Als u alleen het schema voor een enkele database wilt zien, kunt u een argument toevoegen om de database(s) waarin u geïnteresseerd bent te specificeren.
Bijvoorbeeld:
.schema main.*
De sqlite_master-tabel
Een alternatief voor .schema
is om direct de sqlite_master . te bevragen tafel. Deze tabel bevat een kolom met de naam sql , die de SQL bevat die is gebruikt om de tabel te maken.
Hier is een voorbeeld:
SELECT sql FROM sqlite_master WHERE tbl_name = 'Genre';
Resultaat:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) )
Tabelgegevens opnemen
Als u alle gegevens wilt, gebruikt u de .dump
opdracht. Deze opdracht schrijft de CREATE TABLE
statement en de INSERT
instructies voor het invoegen van alle gegevens in de tabel.
Hier is een voorbeeld:
.dump Genre
Resultaat:
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;