sql >> Databáze >  >> RDS >> SQLite

3 způsoby, jak vygenerovat skript CREATE TABLE z existující tabulky v SQLite

Tento článek obsahuje tři způsoby, jak vygenerovat SQL skript z existující tabulky v SQLite.

Všechny tři metody generují CREATE TABLE script, ale poslední metoda také generuje INSERT příkazy pro vkládání dat.

Příkaz .schema

Pokud chcete skriptovat pouze strukturu tabulky (tj. bez jejích dat), můžete použít .schema příkaz.

Chcete-li to provést, jednoduše použijte .schema následovaný názvem tabulky, kterou chcete skriptovat.

Zde je příklad:

.schema Genre

Výsledek:

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

V tomto případě jsem skriptoval Genre tabulka.

Můžete také použít porovnávání vzorů s .schema příkaz.

Například následující příkaz vrátí stejný výsledek jako předchozí:

.schema Gen%

Můžete také použít .schema příkaz pro skriptování celé databáze. Chcete-li to provést, jednoduše použijte příkaz bez argumentu. Takhle:

.schema

Ve výchozím nastavení .schema zobrazuje schéma pro všechny připojené databáze. Pokud chcete vidět schéma pouze pro jednu databázi, můžete přidat argument, který specifikuje databáze, které vás zajímají.

Například:

.schema main.*

Tabulka sqlite_master

Alternativa k .schema je přímo dotazovat sqlite_master stůl. Tato tabulka obsahuje sloupec s názvem sql , který obsahuje SQL použitý k vytvoření tabulky.

Zde je příklad:

SELECT sql FROM sqlite_master WHERE tbl_name = 'Genre';

Výsledek:

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

Zahrnout data tabulky

Pokud chcete všechna data, použijte .dump příkaz. Tento příkaz skriptuje CREATE TABLE stejně jako INSERT příkazy pro vložení všech dat do tabulky.

Zde je příklad:

.dump Genre

Výsledek:

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. Mít sloupce s časovým razítkem Vytvořeno i Poslední aktualizace v MySQL 4.0

  2. Hibernate nemohl získat hodnotu další sekvence

  3. Ztratilo se připojení k serveru MySQL při „čtení počátečního komunikačního paketu“, systémová chyba:0

  4. Jak používat řazení (pořadí podle) v příkazu Select v SQL Server - SQL Server / Výukový program TSQL, část 109