Тази статия съдържа три начина за генериране на SQL скрипт от съществуваща таблица в SQLite.
И трите метода генерират CREATE TABLE
скрипт, но последният метод също генерира INSERT
оператори за вмъкване на данните.
Командата .schema
Ако искате само да скриптирате структурата на таблицата (т.е. без нейните данни), можете да използвате .schema
команда.
За да направите това, просто използвайте .schema
последвано от името на таблицата, която искате да скриптирате.
Ето един пример:
.schema Genre
Резултат:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) );
В този случай написах Genre
таблица.
Можете също да използвате съвпадение на шаблон с .schema
команда.
Например следната команда връща същия резултат като предишната:
.schema Gen%
Можете също да използвате .schema
команда за скриптиране на цялата база данни. За да направите това, просто използвайте командата без аргумент. Като това:
.schema
По подразбиране .schema
показва схемата за всички прикачени бази данни. Ако искате да видите схемата само за една база данни, можете да добавите аргумент, за да посочите базата/ите, от които се интересувате.
Например:
.schema main.*
Таблицата sqlite_master
Алтернатива на .schema
е за директно запитване на sqlite_master маса. Тази таблица съдържа колона, наречена sql , който съдържа SQL, използван за създаване на таблицата.
Ето един пример:
SELECT sql FROM sqlite_master WHERE tbl_name = 'Genre';
Резултат:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) )
Включете данни от таблица
Ако искате всички данни, използвайте .dump
команда. Тази команда скриптира CREATE TABLE
оператор, както и INSERT
оператори за вмъкване на всички данни в таблицата.
Ето един пример:
.dump Genre
Резултат:
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;