Este artigo contém três maneiras de gerar um script SQL de uma tabela existente no SQLite.
Todos os três métodos geram o
CREATE TABLE
script, mas o último método também gera o INSERT
instruções para inserir os dados. O comando .schema
Se você quiser apenas fazer um script da estrutura da tabela (ou seja, sem seus dados), você pode usar o
.schema
comando. Para fazer isso, basta usar
.schema
seguido pelo nome da tabela que você deseja criar script. Aqui está um exemplo:
.schema Genre
Resultado:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) );
Neste caso, criei o script
Genre
tabela. Você também pode usar a correspondência de padrões com o
.schema
comando. Por exemplo, o comando a seguir retorna o mesmo resultado que o anterior:
.schema Gen%
Você também pode usar o
.schema
comando para fazer o script de todo o banco de dados. Para fazer isso, basta usar o comando sem um argumento. Assim:.schema
Por padrão,
.schema
mostra o esquema para todos os bancos de dados anexados. Se você deseja ver apenas o esquema de um único banco de dados, pode adicionar um argumento para especificar o(s) banco(s) de dados em que está interessado. Por exemplo:
.schema main.*
A tabela sqlite_master
Uma alternativa para
.schema
é consultar diretamente o sqlite_master tabela. Esta tabela contém uma coluna chamada sql , que contém o SQL usado para criar a tabela. Aqui está um exemplo:
SELECT sql FROM sqlite_master WHERE tbl_name = 'Genre';
Resultado:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) )
Incluir dados da tabela
Se você quiser todos os dados, use o
.dump
comando. Este comando cria um script de CREATE TABLE
instrução, bem como o INSERT
instruções para inserir todos os dados na tabela. Aqui está um exemplo:
.dump Genre
Resultado:
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;