sql >> Database teknologi >  >> RDS >> SQLite

3 måder at generere et CREATE TABLE-script fra en eksisterende tabel i SQLite

Denne artikel indeholder tre måder at generere et SQL-script fra en eksisterende tabel i SQLite.

Alle tre metoder genererer CREATE TABLE script, men den sidste metode genererer også INSERT erklæringer for indsættelse af data.

.schema-kommandoen

Hvis du kun ønsker at scripte tabelstrukturen (dvs. uden dens data), kan du bruge .schema kommando.

For at gøre dette skal du blot bruge .schema efterfulgt af navnet på den tabel, du vil scripte.

Her er et eksempel:

.schema Genre

Resultat:

CREATE TABLE [Genre]
(
    [GenreId] INTEGER  NOT NULL,
    [Name] NVARCHAR(120),
    CONSTRAINT [PK_Genre] PRIMARY KEY  ([GenreId])
);

I dette tilfælde skrev jeg scriptet til Genre tabel.

Du kan også bruge mønstermatchning med .schema kommando.

For eksempel returnerer følgende kommando det samme resultat som den forrige:

.schema Gen%

Du kan også bruge .schema kommando til at skrive hele databasen. For at gøre dette skal du blot bruge kommandoen uden et argument. Sådan:

.schema

Som standard er .schema viser skemaet for alle vedhæftede databaser. Hvis du kun ønsker at se skemaet for en enkelt database, kan du tilføje et argument for at angive den/de databaser, du er interesseret i.

For eksempel:

.schema main.*

sqlite_master-tabellen

Et alternativ til .schema er at forespørge direkte på sqlite_master bord. Denne tabel indeholder en kolonne kaldet sql , som indeholder den SQL, der bruges til at oprette tabellen.

Her er et eksempel:

SELECT sql FROM sqlite_master WHERE tbl_name = 'Genre';

Resultat:

CREATE TABLE [Genre]
(
    [GenreId] INTEGER  NOT NULL,
    [Name] NVARCHAR(120),
    CONSTRAINT [PK_Genre] PRIMARY KEY  ([GenreId])
)

Medtag tabeldata

Hvis du vil have alle data, skal du bruge .dump kommando. Denne kommando scripter CREATE TABLE sætning samt INSERT sætninger til at indsætte alle data i tabellen.

Her er et eksempel:

.dump Genre

Resultat:

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;


  1. Hvad er forskellen mellem char, nchar, varchar og nvarchar i SQL Server?

  2. Opret en midlertidig tabel i SQL Server

  3. Kan ikke oprette den anmodede tjeneste [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

  4. Hvordan sammenkædes kolonner i en Postgres SELECT?