selezionare in in mysql


88

Sono un utente MSSQL e ora sto convertendo il mio database in MySQL. Sto scrivendo la seguente query in MySQL:

select * into new_tbl from tbl

E ottengo il seguente errore

Error : Undeclared variable new_tbl

Come dovrebbe essere scritta correttamente una query del genere in MySQL?

Risposte:


130

Usa la sintassi CREATE TABLE SELECT.

http://dev.mysql.com/doc/refman/5.0/en/create-table-select.html

CREATE TABLE new_tbl SELECT * FROM orig_tbl;

Il comando SELECT INTO crea una nuova tabella e può essere copiato i dati da un database a un altro come
Shankar Regmi

3
La sintassi corretta è: CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
csname1910

CREATE ... SELECT funziona, questa dovrebbe essere la risposta accettata. La parola chiave "AS" è apparentemente facoltativa e SELECT INTO non funziona con MySQL.
Leo

Sottolinea che non crea indici!
Ivan Ivković

89

In MySQL, dovrebbe essere così

INSERT INTO this_table_archive (col1, col2, ..., coln)
SELECT col1, col2, ..., coln
FROM this_table
WHERE entry_date < '2011-01-01 00:00:00';

Documentazione MySQL


8
Sottile differenza. In questo caso la tabella deve esistere. Perché select intonon è così. In effetti, penso che sia un errore se lo fa. Quindi questa soluzione dovrebbe essere preceduta da istruzioni che duplicano lo schema della tabella.
paxdiablo

Come dice paxdiablo, questo richiede che la tabella in cui stai inserendo esista già. La sintassi MSSQL utilizzata da OP per creare la tabella per te.
Dave K

7
Forse non ho risposto alla domanda dell'OP, ma fortunatamente questo era esattamente quello che stavo cercando.
garyh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.