sql >> Database >  >> RDS >> SQLite

3 manieren om een ​​CREATE TABLE-script te genereren uit een bestaande tabel in SQLite

Dit artikel bevat drie manieren om een ​​SQL-script te genereren uit een bestaande tabel in SQLite.

Alle drie de methoden genereren de CREATE TABLE script, maar de laatste methode genereert ook de INSERT instructies voor het invoegen van de gegevens.

Het .schema-commando

Als u alleen de tabelstructuur wilt scripten (d.w.z. zonder de gegevens), kunt u de .schema gebruiken opdracht.

Gebruik hiervoor gewoon .schema gevolgd door de naam van de tabel die u wilt scripten.

Hier is een voorbeeld:

.schema Genre

Resultaat:

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

In dit geval heb ik het Genre gescript tafel.

U kunt patroonovereenkomst ook gebruiken met het .schema opdracht.

De volgende opdracht geeft bijvoorbeeld hetzelfde resultaat als de vorige:

.schema Gen%

U kunt ook het .schema . gebruiken commando om de hele database te scripten. Om dit te doen, gebruikt u eenvoudig de opdracht zonder een argument. Zoals dit:

.schema

Standaard, .schema toont het schema voor alle gekoppelde databases. Als u alleen het schema voor een enkele database wilt zien, kunt u een argument toevoegen om de database(s) waarin u geïnteresseerd bent te specificeren.

Bijvoorbeeld:

.schema main.*

De sqlite_master-tabel

Een alternatief voor .schema is om direct de sqlite_master . te bevragen tafel. Deze tabel bevat een kolom met de naam sql , die de SQL bevat die is gebruikt om de tabel te maken.

Hier is een voorbeeld:

SELECT sql FROM sqlite_master WHERE tbl_name = 'Genre';

Resultaat:

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

Tabelgegevens opnemen

Als u alle gegevens wilt, gebruikt u de .dump opdracht. Deze opdracht schrijft de CREATE TABLE statement en de INSERT instructies voor het invoegen van alle gegevens in de tabel.

Hier is een voorbeeld:

.dump Genre

Resultaat:

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. Een overzicht van ProxySQL-clustering in ClusterControl

  2. Kan ik afbeeldingen opslaan in MySQL?

  3. MySQL converteert datumreeks naar Unix-tijdstempel

  4. MySQL-prestaties:introductie tot JOIN's in SQL