sql >> Databasteknik >  >> RDS >> SQLite

3 sätt att skapa ett CREATE TABLE-skript från en befintlig tabell i SQLite

Den här artikeln innehåller tre sätt att generera ett SQL-skript från en befintlig tabell i SQLite.

Alla tre metoderna genererar CREATE TABLE skript, men den sista metoden genererar också INSERT uttalanden för att infoga data.

.schema-kommandot

Om du bara vill skripta tabellstrukturen (dvs utan dess data), kan du använda .schema kommando.

För att göra detta, använd helt enkelt .schema följt av namnet på tabellen du vill skripta.

Här är ett exempel:

.schema Genre

Resultat:

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

I det här fallet skrev jag ett skript till Genre bord.

Du kan också använda mönstermatchning med .schema kommando.

Till exempel returnerar följande kommando samma resultat som det föregående:

.schema Gen%

Du kan också använda .schema kommando för att skripta hela databasen. För att göra detta, använd helt enkelt kommandot utan argument. Så här:

.schema

Som standard är .schema visar schemat för alla bifogade databaser. Om du bara vill se schemat för en enskild databas kan du lägga till ett argument för att specificera databasen/databaserna du är intresserad av.

Till exempel:

.schema main.*

Sqlite_master-tabellen

Ett alternativ till .schema är att direkt fråga sqlite_master tabell. Den här tabellen innehåller en kolumn som heter sql , som innehåller den SQL som används för att skapa tabellen.

Här är ett exempel:

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])
)

Inkludera tabelldata

Om du vill ha all data, använd .dump kommando. Detta kommando skriptar CREATE TABLE satsen samt INSERT satser för att infoga all data i tabellen.

Här är ett exempel:

.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. Säkerhetsnät

  2. Antal rader lästa / faktiska rader Läs varningar i Plan Explorer

  3. Hur man får aktuellt Connection-objekt i Spring JDBC

  4. NULLIF() Funktion i Oracle