Příkaz insert má ve skutečnosti syntaxi, která to umožňuje. Je to mnohem snazší, pokud zadáte názvy sloupců místo výběru "*", ačkoli:
INSERT INTO new_table (Foo, Bar, Fizz, Buzz)
SELECT Foo, Bar, Fizz, Buzz
FROM initial_table
-- optionally WHERE ...
Raději bych to objasnil, protože z nějakého důvodu tento příspěvek získává několik záporných hlasů.
Syntaxe INSERT INTO ... SELECT FROM je určena pro případy, kdy tabulka, do které vkládáte ("nová_tabulka" v mém příkladu výše), již existuje. Jak již řekli jiní, syntaxe SELECT ... INTO je pro, když chcete vytvořit novou tabulku jako součást příkazu.
Nespecifikovali jste, zda je třeba novou tabulku vytvořit jako součást příkazu, takže INSERT INTO ... SELECT FROM by mělo být v pořádku, pokud vaše cílová tabulka již existuje.