La sintassi dell'istruzione Create Table As SQL è:
CREATE TABLE table_name [ ( column_name [, ...] ) ] AS select [ * ! ( column_name [, ...] ) ] FROM source_table_name
Sostituisci table_name con il nome della nuova tabella che verrà creata. Il nome della colonna è facoltativo, in cui puoi specificare più colonne includendone i nomi in un elenco delimitato da virgole. In caso contrario, la struttura della nuova tabella sarà basata sui nomi delle colonne, sui tipi e sul numero di colonne restituite dall'istruzione Select, insieme ai dati della riga. Se specifichi il nome della colonna, tieni presente che dovrebbe esserci lo stesso numero di colonne specificate restituite da select.
L'istruzione select alla fine del comando create table as deve essere valida e il numero di destinazioni selezionate corrisponde al numero di colonne nell'elenco di colonne facoltativo che precede la clausola AS. Può essere un'istruzione select complessa che recupera i dati da più tabelle. Se l'elenco di colonne facoltativo è specificato tra parentesi, l'asterisco (*) non può più essere utilizzato nell'istruzione select.
Ad esempio,
CREATE TABLE demo_backup AS SELECT * FROM demo;
Sopra l'istruzione SQL verrà creata una tabella di backup della replica esatta denominata demo_backup con i dati e la struttura (colonne) della tabella demo.
Il possibile errore se si specifica l'elenco di colonne facoltativo è:
ERRORE:CREATE TABLE/AS SELECT ha un conteggio delle colonne non corrispondente
Se si verifica questo messaggio di errore, ciò è dovuto all'elenco facoltativo di colonne tra parentesi che contiene un numero di righe diverso rispetto a quello restituito dall'istruzione select. Ricontrolla se il numero di colonne specificato è lo stesso con i risultati attesi dal set di risultati selezionato.
NotaAlcuni sistemi di database supportano la sintassi CREATE TABLE … LIKE che crea una tabella vuota basata sulla definizione di un'altra tabella, inclusi eventuali attributi di colonna e indici definiti nella tabella originale. La differenza è che CREATE TABLE … SELECT sintassi copia anche i dati.