SQLite
 sql >> Datenbank >  >> RDS >> SQLite

3 Möglichkeiten zum Generieren eines CREATE TABLE-Skripts aus einer vorhandenen Tabelle in SQLite

Dieser Artikel enthält drei Möglichkeiten zum Generieren eines SQL-Skripts aus einer vorhandenen Tabelle in SQLite.

Alle drei Methoden erzeugen die CREATE TABLE Skript, aber die letzte Methode generiert auch den INSERT Anweisungen zum Einfügen der Daten.

Der .schema-Befehl

Wenn Sie nur die Tabellenstruktur skripten möchten (d. h. ohne ihre Daten), können Sie das .schema verwenden Befehl.

Verwenden Sie dazu einfach .schema gefolgt vom Namen der Tabelle, die Sie skripten möchten.

Hier ist ein Beispiel:

.schema Genre

Ergebnis:

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

In diesem Fall habe ich das Genre geschrieben Tabelle.

Sie können den Musterabgleich auch mit .schema verwenden Befehl.

Der folgende Befehl gibt beispielsweise das gleiche Ergebnis wie der vorherige zurück:

.schema Gen%

Sie können auch das .schema verwenden Befehl, um die gesamte Datenbank zu skripten. Verwenden Sie dazu einfach den Befehl ohne Argument. So:

.schema

Standardmäßig .schema zeigt das Schema für alle angehängten Datenbanken. Wenn Sie nur das Schema für eine einzelne Datenbank sehen möchten, können Sie ein Argument hinzufügen, um die Datenbank(en) anzugeben, an denen Sie interessiert sind.

Zum Beispiel:

.schema main.*

Die sqlite_master-Tabelle

Eine Alternative zu .schema besteht darin, den sqlite_master direkt abzufragen Tisch. Diese Tabelle enthält eine Spalte namens sql , die das zum Erstellen der Tabelle verwendete SQL enthält.

Hier ist ein Beispiel:

SELECT sql FROM sqlite_master WHERE tbl_name = 'Genre';

Ergebnis:

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

Tabellendaten einbeziehen

Wenn Sie alle Daten haben möchten, verwenden Sie die .dump Befehl. Dieser Befehl schreibt die CREATE TABLE -Anweisung sowie das INSERT Anweisungen zum Einfügen aller Daten in die Tabelle.

Hier ist ein Beispiel:

.dump Genre

Ergebnis:

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;