L'istruzione insert in realtà ha una sintassi per fare proprio questo. È molto più semplice se specifichi i nomi delle colonne invece di selezionare "*":
INSERT INTO new_table (Foo, Bar, Fizz, Buzz)
SELECT Foo, Bar, Fizz, Buzz
FROM initial_table
-- optionally WHERE ...
Farei meglio a chiarirlo perché per qualche motivo questo post sta ricevendo alcuni voti negativi.
La sintassi INSERT INTO ... SELECT FROM è per quando la tabella in cui stai inserendo ("new_table" nel mio esempio sopra) esiste già. Come altri hanno già detto, la sintassi SELECT ... INTO serve quando vuoi creare la nuova tabella come parte del comando.
Non hai specificato se la nuova tabella deve essere creata come parte del comando, quindi INSERT INTO ... SELECT FROM dovrebbe andare bene se la tua tabella di destinazione esiste già.