Die Insert-Anweisung hat tatsächlich eine Syntax, um genau das zu tun. Es ist jedoch viel einfacher, wenn Sie die Spaltennamen angeben, anstatt "*" auszuwählen:
INSERT INTO new_table (Foo, Bar, Fizz, Buzz)
SELECT Foo, Bar, Fizz, Buzz
FROM initial_table
-- optionally WHERE ...
Ich sollte das besser klarstellen, da dieser Beitrag aus irgendeinem Grund ein paar negative Stimmen erhält.
Die INSERT INTO ... SELECT FROM-Syntax gilt, wenn die Tabelle, in die Sie einfügen ("new_table" in meinem obigen Beispiel), bereits vorhanden ist. Wie andere gesagt haben, ist die SELECT ... INTO-Syntax dafür gedacht, wenn Sie die neue Tabelle als Teil des Befehls erstellen möchten.
Sie haben nicht angegeben, ob die neue Tabelle als Teil des Befehls erstellt werden muss, also sollte INSERT INTO ... SELECT FROM in Ordnung sein, wenn Ihre Zieltabelle bereits existiert.