sql >> Base de Datos >  >> RDS >> SQLite

3 formas de generar un script CREATE TABLE a partir de una tabla existente en SQLite

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;