Mysql
 sql >> Database >  >> RDS >> Mysql

Duplica, copia o esegui il backup di tabelle in MySQL, MariaDB, Oracle, PostgreSQL, DB2 e SQLite con Crea tabella come SQL

Nel sistema di database Oracle, PostgreSQL, DB2, MySQL, MariaDB e SQLite, c'è una bella funzionalità di comando chiamata Crea tabella come che consente di duplicare facilmente una tabella con i dati di un'altra o di poche altre tabelle. Il comando SQL può anche essere utilizzato per "copiare e incollare" esattamente una tabella o eseguire il backup dei dati di una tabella prima di eseguire una query di manipolazione dei dati sulla tabella originale, nel caso in cui lo script abbia errori e la data di backup possa essere utilizzata per ripristinare lo stato originale . Crea tabella come creerà una nuova tabella costruita dal contenuto del set di dati o del set di risultati recuperato da un Seleziona Query SQL da una tabella già esistente all'interno del database.

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.