Tento článek obsahuje tři způsoby, jak vygenerovat SQL skript z existující tabulky v SQLite.
Všechny tři metody generují CREATE TABLE script, ale poslední metoda také generuje INSERT příkazy pro vkládání dat.
Příkaz .schema
Pokud chcete skriptovat pouze strukturu tabulky (tj. bez jejích dat), můžete použít .schema příkaz.
Chcete-li to provést, jednoduše použijte .schema následovaný názvem tabulky, kterou chcete skriptovat.
Zde je příklad:
.schema Genre Výsledek:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) );
V tomto případě jsem skriptoval Genre tabulka.
Můžete také použít porovnávání vzorů s .schema příkaz.
Například následující příkaz vrátí stejný výsledek jako předchozí:
.schema Gen%
Můžete také použít .schema příkaz pro skriptování celé databáze. Chcete-li to provést, jednoduše použijte příkaz bez argumentu. Takhle:
.schema
Ve výchozím nastavení .schema zobrazuje schéma pro všechny připojené databáze. Pokud chcete vidět schéma pouze pro jednu databázi, můžete přidat argument, který specifikuje databáze, které vás zajímají.
Například:
.schema main.* Tabulka sqlite_master
Alternativa k .schema je přímo dotazovat sqlite_master stůl. Tato tabulka obsahuje sloupec s názvem sql , který obsahuje SQL použitý k vytvoření tabulky.
Zde je příklad:
SELECT sql FROM sqlite_master WHERE tbl_name = 'Genre'; Výsledek:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) )
Zahrnout data tabulky
Pokud chcete všechna data, použijte .dump příkaz. Tento příkaz skriptuje CREATE TABLE stejně jako INSERT příkazy pro vložení všech dat do tabulky.
Zde je příklad:
.dump Genre Výsledek:
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;