sql >> Databáze >  >> RDS >> Mysql

Duplikujte, kopírujte nebo zálohujte tabulky v MySQL, MariaDB, Oracle, PostgreSQL, DB2 a SQLite pomocí Create Table As SQL

V databázovém systému Oracle, PostgreSQL, DB2, MySQL, MariaDB a SQLite existuje pěkná funkce příkazu nazvaná Vytvořit tabulku jako což umožňuje snadnou duplikaci tabulky s daty z jiné nebo několika dalších tabulek. Příkaz SQL lze také použít k přesnému „zkopírování a vložení“ tabulky nebo k zálohování dat tabulky před provedením dotazu na manipulaci s daty v původní tabulce, pro případ, že by ve skriptu došlo k chybě a datum zálohy lze použít k obnovení původního stavu. . Vytvořit tabulku jako vytvoří novou tabulku vytvořenou z obsahu datové sady nebo sady výsledků načtené pomocí Vybrat SQL dotaz z tabulky, která již v databázi existuje.

Syntaxe příkazu SQL Create Table As je:

CREATE TABLE table_name [ ( column_name [, ...] ) ]
             AS select [ * ! ( column_name [, ...] ) ] FROM source_table_name

Nahraďte název_tabulky názvem nové tabulky, která bude vytvořena. Název sloupce je volitelný, kde můžete zadat více sloupců uvedením jejich názvů do seznamu odděleného čárkami. Jinak bude struktura nové tabulky založena na názvech sloupců, typech a počtu sloupců vrácených příkazem Select spolu s daty řádků. Pokud zadáte název sloupce, mějte na paměti, že by měl být zadán stejný počet sloupců, jaký vrací select.

Příkaz select na konci příkazu create table as musí být platný a musí mít počet vybraných cílů odpovídající počtu sloupců v seznamu volitelných sloupců před klauzulí AS. Může to být složitý příkaz select, který získá data z více tabulek. Pokud je v závorkách uveden seznam volitelných sloupců, nelze již v příkazu select používat hvězdičku (*).

Například,

CREATE TABLE demo_backup
AS SELECT * FROM demo;

Výše uvedený příkaz SQL vytvoří přesnou repliku záložní tabulky s názvem demo_backup s daty a strukturou (sloupci) ukázkové tabulky.

Možná chyba, pokud zadáte seznam volitelných sloupců, je:

CHYBA:CREATE TABLE/AS SELECT má nesprávný počet sloupců

Pokud se zobrazí tato chybová zpráva, je to způsobeno tím, že volitelný seznam sloupců v závorkách obsahuje jiný počet řádků, než vrací příkaz select. Znovu zkontrolujte, zda je zadaný počet sloupců stejný jako počet očekávaných výsledků z vybrané sady výsledků.

PoznámkaNěkteré databázové systémy podporují syntaxi CREATE TABLE … LIKE, která vytvoří prázdnou tabulku na základě definice jiné tabulky, včetně všech atributů sloupců a indexů definovaných v původní tabulce. Rozdíl je v tom, že syntaxe CREATE TABLE … SELECT také kopíruje data.


  1. Přidejte třídění stránkování a vyhledávání pomocí jquery datatable

  2. Coddova pravidla v SQL

  3. Získejte hodnotu pole pomocí kurzoru

  4. Indexované zobrazení údržby v prováděcích plánech