Ten artykuł zawiera trzy sposoby generowania skryptu SQL z istniejącej tabeli w SQLite.
Wszystkie trzy metody generują CREATE TABLE skrypt, ale ostatnia metoda generuje również INSERT oświadczenia dotyczące wstawiania danych.
Polecenie .schema
Jeśli chcesz tylko skryptować strukturę tabeli (tj. bez jej danych), możesz użyć .schema Komenda.
Aby to zrobić, po prostu użyj .schema a następnie nazwa tabeli, którą chcesz napisać.
Oto przykład:
.schema Genre Wynik:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) );
W tym przypadku napisałem skrypt Genre tabela.
Możesz także użyć dopasowania wzorca z .schema Komenda.
Na przykład poniższe polecenie zwraca ten sam wynik, co poprzednie:
.schema Gen%
Możesz także użyć .schema polecenie do skryptowania całej bazy danych. Aby to zrobić, po prostu użyj polecenia bez argumentu. Tak:
.schema
Domyślnie .schema pokazuje schemat dla wszystkich dołączonych baz danych. Jeśli chcesz zobaczyć schemat tylko dla jednej bazy danych, możesz dodać argument określający interesujące Cię bazy danych.
Na przykład:
.schema main.* Tabela sqlite_master
Alternatywa dla .schema jest bezpośrednie wysłanie zapytania do sqlite_master stół. Ta tabela zawiera kolumnę o nazwie sql , który zawiera kod SQL użyty do utworzenia tabeli.
Oto przykład:
SELECT sql FROM sqlite_master WHERE tbl_name = 'Genre'; Wynik:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) )
Dołącz dane tabeli
Jeśli chcesz wszystkie dane, użyj .dump Komenda. To polecenie skryptuje CREATE TABLE oświadczenie oraz INSERT instrukcje wstawiania wszystkich danych do tabeli.
Oto przykład:
.dump Genre Wynik:
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;