Questo articolo contiene tre modi per generare uno script SQL da una tabella esistente in SQLite.
Tutti e tre i metodi generano il CREATE TABLE
script, ma l'ultimo metodo genera anche INSERT
istruzioni per l'inserimento dei dati.
Il comando .schema
Se vuoi scrivere solo la struttura della tabella (cioè senza i suoi dati), puoi usare il .schema
comando.
Per farlo, usa semplicemente .schema
seguito dal nome della tabella di cui desideri eseguire lo script.
Ecco un esempio:
.schema Genre
Risultato:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) );
In questo caso ho scritto il Genre
tabella.
Puoi anche utilizzare il pattern matching con .schema
comando.
Ad esempio, il comando seguente restituisce lo stesso risultato del precedente:
.schema Gen%
Puoi anche usare il .schema
comando per eseguire lo script dell'intero database. Per fare ciò, usa semplicemente il comando senza un argomento. In questo modo:
.schema
Per impostazione predefinita, .schema
mostra lo schema per tutti i database collegati. Se vuoi vedere solo lo schema per un singolo database, puoi aggiungere un argomento per specificare il/i database che ti interessa.
Ad esempio:
.schema main.*
Il tavolo sqlite_master
Un'alternativa a .schema
è interrogare direttamente sqlite_master tavolo. Questa tabella contiene una colonna denominata sql , che contiene l'SQL utilizzato per creare la tabella.
Ecco un esempio:
SELECT sql FROM sqlite_master WHERE tbl_name = 'Genre';
Risultato:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) )
Includi dati tabella
Se vuoi tutti i dati, usa il .dump
comando. Questo comando esegue lo script di CREATE TABLE
istruzione così come il INSERT
istruzioni per inserire tutti i dati nella tabella.
Ecco un esempio:
.dump Genre
Risultato:
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;