Este artículo contiene tres formas de generar un script SQL a partir de una tabla existente en SQLite.
Los tres métodos generan CREATE TABLE
script, pero el último método también genera el INSERT
instrucciones para insertar los datos.
El comando .schema
Si solo desea crear un script para la estructura de la tabla (es decir, sin sus datos), puede usar .schema
dominio.
Para hacer esto, simplemente use .schema
seguido del nombre de la tabla que desea crear.
He aquí un ejemplo:
.schema Genre
Resultado:
CREATE TABLE [Genre] ( [GenreId] INTEGER NOT NULL, [Name] NVARCHAR(120), CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId]) );
En este caso, escribí el Genre
mesa.
También puede usar la coincidencia de patrones con .schema
dominio.
Por ejemplo, el siguiente comando devuelve el mismo resultado que el anterior:
.schema Gen%
También puede usar el .schema
Comando para escribir toda la base de datos. Para hacer esto, simplemente use el comando sin argumentos. Así:
.schema
Por defecto, .schema
muestra el esquema de todas las bases de datos adjuntas. Si solo desea ver el esquema de una sola base de datos, puede agregar un argumento para especificar las bases de datos que le interesan.
Por ejemplo:
.schema main.*
La tabla sqlite_master
Una alternativa a .schema
es consultar directamente el sqlite_master mesa. Esta tabla contiene una columna llamada sql , que contiene el SQL utilizado para crear la tabla.
He aquí un ejemplo:
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 datos de tabla
Si desea todos los datos, use .dump
dominio. Este comando crea un script para CREATE TABLE
declaración así como el INSERT
instrucciones para insertar todos los datos en la tabla.
He aquí un ejemplo:
.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;