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.